码迷,mamicode.com
首页 > 其他好文 > 详细

3.1U1585

时间:2015-03-07 00:46:18      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:

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 }

 

3.1U1585

标签:

原文地址:http://www.cnblogs.com/travelller/p/4319499.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!