标签:
XXOO题。。。。//必须吐槽一句打开UVA的速度简直快到飞起(╯‵□′)╯︵┻━┻
明明是一道简单的不能再简单的题,还是有人能给我做成动态规划,想哭简直/(ㄒoㄒ)/~~
我滴代码:遇O累加,遇N求和
1 //3-1 uva1585 2 #include<stdio.h> 3 #include<string.h> 4 5 int main() 6 { 7 int j,i,n,x,s,sum; 8 char a[80]; 9 scanf("%d\n",&n);//n行数据 10 for(j=1;j<=n;j++){ 11 scanf("%s",a);//每行赋给a 12 x=strlen(a);//每行长度为x 13 sum=0;//答案 14 s=0; 15 for (i=0;i<x;i++){ 16 if (a[i]==‘O‘) s++; 17 else {sum+=(1+s)*s/2;s=0;} 18 } 19 if (a[x-1]==‘O‘) {sum+=(1+s)*s/2;s=0;} 20 printf("%d\n",sum); 21 } 22 return 0; 23 }
路人甲:遇到第几个N就加几//其实我考虑过这个,但这个比我的求和公式简单,估计错误 keep it simple
1 #include<cstdio> 2 #include<cstring> 3 using namespace std; 4 5 int n, t, ans; 6 int main() 7 { 8 char s[100]; 9 scanf ("%d", &n); 10 while (n--) 11 { 12 scanf ("%s", s); 13 t = ans = 0; 14 for (int i = 0; s[i] != ‘\0‘; ++i) 15 { 16 if (s[i] == ‘O‘) 17 ans += ++t; 18 else t = 0; 19 } 20 printf ("%d\n", ans); 21 } 22 return 0; 23 }
路人乙:动规,再开一个数组,有点浪费空间啊哥们
1 #include<iostream> 2 #include<algorithm> 3 #include<string.h> 4 #include<cstdio> 5 using namespace std; 6 char str[100]; 7 int dp[110]; 8 int main() 9 { 10 int n; 11 scanf("%d",&n); 12 while(n--) 13 { 14 scanf("%s",str); 15 dp[0]=(str[0]==‘O‘); 16 for(int i=1;str[i];++i) 17 { 18 dp[i]=dp[i-1]+1; 19 if(str[i]==‘X‘) 20 dp[i]=0; 21 } 22 int sum=0; 23 for(int i=0;str[i];++i) 24 sum+=dp[i]; 25 printf("%d\n",sum); 26 } 27 return 0; 28 }
标签:
原文地址:http://www.cnblogs.com/travelller/p/4319499.html