萌新求解QAQ

P2035 [USACO08JAN] iCow B

前排膜拜dalao
by _SAR_ @ 2019-05-21 15:52:00


~~去你的萌新~~
by loceaner @ 2019-05-21 15:52:46


@[loceaner](/space/show?uid=198323) QAQ我可是萌新,dalao帮帮我吧
by Mono_pigsicklie @ 2019-05-21 15:54:56


@[_SAR_](/space/show?uid=210890) 大佬帮帮我
by Mono_pigsicklie @ 2019-05-21 15:58:19


帮帮萌新吧QAQ
by Mono_pigsicklie @ 2019-05-21 15:58:42


#include"bits/stdc++.h" using namespace std; int n,t; #define N 1011 struct edge { int r; int num; } a[N]; inline int read() { int x=0,f=1; char c=getchar(); for(; !isdigit(c); c=getchar()) if(c=='-') f=-1; for(; isdigit(c); c=getchar()) x=x*10+c-'0'; return x*f; } inline int cmp(edge x,edge y) { return x.r==y.r ? x.num<y.num : x.r>y.r; } inline int cmd(edge x,edge y){ return x.num<y.num; } int now,z; int main(void) { n=read(); t=read(); for(int i=1; i<=n; ++i) { a[i].r=read(); a[i].num=i; } sort(a+1,a+1+n,cmp); int cnt=0; while(cnt!=t) { z=0; now=a[1].num; cout<<a[1].num<<'\n'; for(int i=2; i<=n; ++i) a[i].r+=a[1].r/(n-1); int opt=a[1].r%(n-1); a[1].r=0; sort(a+1,a+1+n,cmd); while(opt>0) { ++z; if(a[z].num!=now) { opt--; a[z].r++; } } sort(a+1,a+1+n,cmp); cnt++; } return 0; }
by 七夜 @ 2019-05-21 16:29:33


``` #include"bits/stdc++.h" using namespace std; int n,t; #define N 1011 struct edge { int r; int num; } a[N]; inline int read() { int x=0,f=1; char c=getchar(); for(; !isdigit(c); c=getchar()) if(c=='-') f=-1; for(; isdigit(c); c=getchar()) x=x*10+c-'0'; return x*f; } inline int cmp(edge x,edge y) { return x.r==y.r ? x.num<y.num : x.r>y.r; } inline int cmd(edge x,edge y){ return x.num<y.num; } int now,z; int main(void) { n=read(); t=read(); for(int i=1; i<=n; ++i) { a[i].r=read(); a[i].num=i; } sort(a+1,a+1+n,cmp); int cnt=0; while(cnt!=t) { z=0; now=a[1].num; cout<<a[1].num<<'\n'; for(int i=2; i<=n; ++i) a[i].r+=a[1].r/(n-1); int opt=a[1].r%(n-1); a[1].r=0; sort(a+1,a+1+n,cmd); while(opt>0) { ++z; if(a[z].num!=now) { opt--; a[z].r++; } } sort(a+1,a+1+n,cmp); cnt++; } return 0; } ```
by 七夜 @ 2019-05-21 16:29:54


@[七夜](/space/show?uid=188217) dalao再帮帮萌新吧QAQ,已经按照你说的加了个comp为啥子还不对
by Mono_pigsicklie @ 2019-05-21 16:31:54


```cpp #include"bits/stdc++.h" using namespace std; int n,t; #define N 1011 struct edge { int r; int num; } a[N]; inline int read() { int x=0,f=1; char c=getchar(); for(; !isdigit(c); c=getchar()) if(c=='-') f=-1; for(; isdigit(c); c=getchar()) x=x*10+c-'0'; return x*f; } inline int cmp(edge x,edge y) { return x.r==y.r ? x.num<y.num : x.r>y.r; } inline int comp(edge x,edge y) { return x.num<y.num; } int now; int main(void) { n=read(); t=read(); for(int i=1; i<=n; ++i) { a[i].r=read(); a[i].num=i; } sort(a+1,a+1+n,cmp); int cnt=0; while(cnt!=t) { now=a[1].num; if(a[1].r%(n-1)!=0) {//有余 for(int i=2; i<=n; ++i) { a[i].r+=a[1].r/(n-1);//分给其他的 } int opt=a[1].r%(n-1); a[1].r=0; sort(a+1,a+1+n,comp); while(opt!=0) { for(int i=1; i<=n; ++i) { opt--; a[i].r++; if(opt==0) break; } } sort(a+1,a+1+n,cmp); } else { sort(a+1,a+1+n,cmp); for(int i=2; i<=n; ++i) { a[i].r+=a[1].r/(n-1); } a[1].r=0; sort(a+1,a+1+n,cmp); } cnt++; cout<<now<<"\n"; } return 0; } ```
by Mono_pigsicklie @ 2019-05-21 16:32:04


```cpp #include"bits/stdc++.h" #define N 1011 using namespace std; int n,t; int now; struct edge { int r; int num; } a[N]; inline int read() { int x=0,f=1; char c=getchar(); for(; !isdigit(c); c=getchar()) if(c=='-') f=-1; for(; isdigit(c); c=getchar()) x=x*10+c-'0'; return x*f; } inline int cmp(edge x,edge y) { return x.r==y.r ? x.num<y.num : x.r>y.r; } inline int cmd(edge x,edge y) { return x.num<y.num; } int main(void) { n=read(); t=read(); for(int i=1; i<=n; ++i) { a[i].r=read(); a[i].num=i; } int cnt=0; sort(a+1,a+1+n,cmp); while(cnt!=t) { now=a[1].num; for(int i=2; i<=n; i++) { a[i].r+=a[1].r/(n-1); } if(a[1].r%(n-1)!=0) { int opt=a[1].r%(n-1); a[1].r=0; sort(a+1,a+1+n,cmd);; for(int i=1; i<=n; i++) { if(a[i].num==now)continue; opt--,a[i].r++; if(opt==0)break; } } else a[1].r=0; sort(a+1,a+1+n,cmp); cout<<now<<'\n'; cnt++; } return 0; } ``` 我太lj了现在才做出来
by loceaner @ 2019-05-21 17:01:34


|