比赛地址acm.uestc.edu.cn/contest/59/summary
A题 Lutece 2331 双十一
取个最小值的和即可。
#include <bits/stdc++.h> using namespace std; int main() { int m,n,q; cin>>n>>m; int a[101]; for(int i=0;i<n;++i) a[i] = 101; for(int i=0;i<m;++i) { for(int j=0;j<n;++j) { cin>>q; if(q!=-1) a[j]=min(a[j],q); } } int sum=0; for(int i=0;i<n;++i) sum += a[i]; cout<<sum; return 0; }
B题 Lutece 2346 我们身边的狼
这题猜的结论,我也不知道为什么。
#include <bits/stdc++.h> using namespace std; int main() { int a; cin>>a; if(a%2) cout<<"YES"; else cout<<"NO"; return 0; }
C题 Lutece 2337 %%BlackRed·Z
一个数n,模的最大值显然n-1,所以只要找sum-n即可。
#include <bits/stdc++.h> using namespace std; int main() { int n,a,sum=0; cin>>n; for(int i=0;i<n;++i) { cin>>a;sum+=a; } cout<<sum-n<<endl; return 0; }
D题 Lutece 2329 炉石传说
数据量太小,直接暴力,0次旋风斩到全用旋风斩。
#include <bits/stdc++.h> using namespace std; int main() { int n,x,y; int a[5000]; cin>>n>>x>>y; for(int i=0;i<n;++i) cin>>a[i]; int is = 1; int tot = 0; int res = 0; for(int i=0;i<n;++i) { res += (a[i]+y-1)/y; } while(is) { is=0; ++tot; int sum = tot; for(int i=0;i<n;++i) { if(a[i]) { is = 1; a[i] = a[i]-x>0?a[i]-x:0; sum += (a[i]+y-1)/y; } } res = min(res,sum); } cout<<res<<endl; return 0; }
E题 Lutece 2326 大地的裂变
暴力。把所有的整数点标出来,然后扫一下。
#include <bits/stdc++.h> using namespace std; int res[110][11111]; int main() { int n; int k[10010],b[10010]; int sum[10010]; memset(sum,0,sizeof(sum)); cin>>n; for(int i=0;i<n;++i) { cin>>k[i]>>b[i]; for(int x=0;x<101;++x) ++res[x][x*k[i]+b[i]]; } for(int i=0;i<110;++i) { for(int j=0;j<11111;++j) { ++sum[res[i][j]]; } } for(int i=2;i<=n;++i) cout<<sum[i]<<" "; return 0; }
最后
好久没打了,有点生疏了