日常水题1

昨天下午错过比赛,就补一下其中水题,其他都还不会orz。路漫漫啊

hdu5832 A water problem(水)判断n是否同时被37和173整除。看到有人说见到大数就想用java,我应该暗自庆幸我还没学java么

 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 char s[10000001];
 5 const int mod=10001;//73和137的最小公倍数
 6 int main(){
 7     int k=1,i,x;
 8     while(~scanf("%s",s)){
 9         int n=strlen(s);
10         for(x=i=0;i<n;++i)
11             x=(10*x+s[i]-'0')%mod;
12         printf("Case #%d: %s
",k++,x?"NO":"YES");
13     }
14     return 0;
15 }
View Code

hdu5835 Danganronpa(贪心):注意每种礼物都可以作为神秘或普通礼物。先用最多的礼物作神秘礼物,其他作普通礼物。如果最多的礼物足够多,比如有a:1,b:1,c:100,则排列为cacbc,答案为(s-c)+(s-c+1)=5人(s为礼物数总和),否则答案为s/2。

 1 #include<cstdio>
 2 #include<cstring>
 3 #include<algorithm>
 4 using namespace std;
 5 int main(){
 6     int t,n,k=1,i,s,a[10];
 7     scanf("%d",&t);
 8     while(t--){
 9         scanf("%d",&n);
10         for(s=i=0;i<n;++i){
11             scanf("%d",&a[i]);
12             s+=a[i];
13         }
14         sort(a,a+n);
15         s=min(s/2,(s-a[n-1])*2+1);
16         printf("Case #%d: %d
",k++,s);
17     }
18     return 0;
19 }
View Code

hdu5842 Lweb and String(水)看见LIS别先入为主,看完题目,发现只要判断有多少不同字母即可。我不小心神经质的把strlen()又放在循环里然后TLE,笑哭。。。

 1 #include<cstdio>
 2 #include<cstring>
 3 using namespace std;
 4 char s[100005];
 5 int main(){
 6     int t,k=1,i,x;
 7     scanf("%d",&t);
 8     while(t--){
 9         scanf("%s",s);
10         int a[26]={0};
11         int n=strlen(s);
12         for(i=0;i<n;++i)
13             a[s[i]-'a']=1;
14         for(x=i=0;i<26;++i)
15             if(a[i])x++;
16         printf("Case #%d: %d
",k++,x);
17     }
18     return 0;
19 }
View Code
原文地址:https://www.cnblogs.com/GraceSkyer/p/5772028.html