首页 > 代码库 > USACO silver系列刷题记录
USACO silver系列刷题记录
bzoj 1606: [Usaco2008 Dec]Hay For Sale 购买干草
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int read(){ int ans=0,f=1,c=getchar(); while(c<‘0‘||c>‘9‘){if(c==‘-‘) f=-1; c=getchar();} while(c>=‘0‘&&c<=‘9‘){ans=ans*10+(c-‘0‘); c=getchar();} return ans*f; } int h,n,f[50007],k; int main() { h=read(); n=read(); f[0]=1; for(int i=1;i<=n;i++){ k=read(); for(int j=h;j>=k;j--) if(f[j-k]) f[j]=1; } for(int i=h;i>=0;i--)if(f[i]){printf("%d\n",i); break;} return 0; }
bzoj 1607: [Usaco2008 Dec]Patting Heads 轻拍牛头
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; int read(){ int ans=0,f=1,c=getchar(); while(c<‘0‘||c>‘9‘){if(c==‘-‘) f=-1; c=getchar();} while(c>=‘0‘&&c<=‘9‘){ans=ans*10+(c-‘0‘); c=getchar();} return ans*f; } int n,f[1000007],v[100007],ans[1000007]; int main() { n=read(); for(int i=1;i<=n;i++) v[i]=read(),f[v[i]]++; for(int i=1;i<=(int)1e6;i++)if(f[i]){ for(int j=i;j<=(int)1e6;j+=i) if(f[j]) ans[j]+=f[i]; } for(int i=1;i<=n;i++) printf("%d\n",ans[v[i]]-1); return 0; }
USACO silver系列刷题记录
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。