Browsing History
很水的计数,难道是在测输入输出?
#include <stdio.h>
#include <string.h>
int getsum(char *s)
{
int ret=0;
while (*s)
{
ret+=*s;
s++;
}
return ret;
}
int main()
{
int T,i,j,k,l,sum,max,n,cas=1;
char s[200];
while (~scanf("%d",&n))
{
max=sum=0;
for (i=0; i<n; i++)
{
scanf("%s",s);
sum=getsum(s);
if (max<sum) max=sum;
}
printf("Case %d: %d\n", cas++, max);
}
return 0;
}
Count
DP,每个状态两个变量,一个表示当前有几叉,一个是总共剩多少人。记忆化搜索好写一些。
#include <cstdio>
#include <string.h>
int n,tot;
int f[1100][1100];
const int mod=1e9+7;
int dfs(int x, int y){
if (f[x][y]!=-1) return f[x][y];
if (x==y) return 1;
if (x>y ) return 0;
int sum=0;
for (int i=x; i<y; i+=x)
{
sum=(sum + dfs(i,y-x) )%mod;
}
return (f[x][y]=sum);
}
int main(){
memset(f,-1,sizeof(f));
for (int i=0; i<1100; i++)
f[i][i]=1;
int cas=1;
while ( scanf("%d",&n)!=EOF ){
dfs(1,n);
printf("Case %d: %d\n",cas++,f[1][n]);
//printf("n=%d,tot=%d\n",n,tot);
}
return 0;
}