求救

UVA11292 Dragon of Loowater

@[Song_of_long_voyage](/space/show?uid=119120) @[emming](/space/show?uid=27793) @[Miku初音](/space/show?uid=89820)
by 缥缈的鸿影 @ 2018-10-14 22:21:57


Orz@[AC机](/space/show?uid=96340) 红名巨佬
by 宇智波—鼬 @ 2018-10-14 22:22:23


@[宇智波—鼬](/space/show?uid=93043) QAQ
by 缥缈的鸿影 @ 2018-10-14 22:23:02


我发现了…………
by 缥缈的鸿影 @ 2018-10-14 22:23:31


此贴终结…………
by 缥缈的鸿影 @ 2018-10-14 22:23:43


@[爱吃肉的瓶子](/space/show?uid=98606) 我才收到新通知
by Waddles @ 2018-10-14 22:39:47


@[爱吃肉的瓶子](/space/show?uid=98606) 233
by Waddles @ 2018-10-14 22:41:02


@[Song_of_long_voyage](/space/show?uid=119120) ………………
by 缥缈的鸿影 @ 2018-10-14 22:44:51


@[Song_of_long_voyage](/space/show?uid=119120) 我写了个对拍,拍出来的
by 缥缈的鸿影 @ 2018-10-14 22:53:49


我的程序: ```cpp #include<stdio.h> #include<algorithm> #include<cstring> using namespace std; int a[50005],b[50005],n,m,i,j,ans; bool flag=true; int main () { while(scanf("%d%d",&n,&m)&&n||m) { flag=true; if(n>m) { flag=false; } ans=0; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); if(n==0&&m==0) { return 0; } for(int i=1;i<=n;i++) { scanf("%d",&a[i]); } for(int i=1;i<=m;i++) { scanf("%d",&b[i]); } sort(a+1,a+1+n); sort(b+1,b+1+m); j=1; for(int i=1;i<=n;i++) { while(b[j]<a[i]&&j<=m) j++; if(j<=m) { ans+=b[j]; } else { flag=false; break; } j++; } if(flag) printf("%d\n",ans); else puts("Loowater is doomed!"); } return 0; } ``` 第一篇题解: ```cpp #include<iostream> #include<cstdio> #include<set> #include<cstring> #include<algorithm> using namespace std; #define N 200005 int n,m; int dra[N]; multiset<int>se; inline int read() { int tmp=0,w=1; char ch=0; while(ch<'0'||ch>'9') {if(ch=='-') w=-1;ch=getchar();} while(ch>='0'&&ch<='9') tmp=(tmp<<1)+(tmp<<3)+ch-'0',ch=getchar(); return tmp*w; } int main() { freopen("tiao.in","r",stdin); freopen("tiao2.out","w",stdout); while(scanf("%d%d",&n,&m)==2&&(n||m)) { se.clear(); memset(dra,0,sizeof(dra)); for(int i=1;i<=n;++i) dra[i]=read(); // dragon:恶龙 int x; se.insert(1e9); for(int i=1;i<=m;++i) x=read(),se.insert(x); // 将骑士放进一个集合中 int ans=0; sort(dra+1,dra+1+n); // 将恶龙排序 bool mark=0; for(int i=1;i<=n;++i) { multiset<int>::iterator x=se.lower_bound(dra[i]); if(*x==1e9) {mark=1;break;} // 如果没有比dra[i]大的骑士,就完蛋了 ans=ans+*x; se.erase(x); } if(n>m||mark) printf("Loowater is doomed!\n"); else printf("%d\n",ans); } return 0; } ``` 随机数: ```cpp #include<stdio.h> #include<cctype> #include<cstring> #include<cmath> #include<math.h> #include<algorithm> #include<iostream> #include<string> #include<cstdio> #include<cstdlib> #include<set> #include<ctime> #include<vector> #include<map> #include<queue> #include<stack> #include<list> #include<string.h> #define put(a) putchar(a) #define get getchar() #define re register #define space putchar(' ') #define ne putchar('\n') using namespace std; inline int read() { int x=0,w=0; char ch=0; while(!isdigit(ch)) {w|=ch=='-';ch=getchar();} while(isdigit(ch)) {x=(x<<3)+(x<<1)+(ch^48);ch=getchar();} return w?-x:x; } inline void write(int x) { if(x<0) putchar('-'),x=-x; if(x>9) write(x/10); putchar(x%10+'0'); } int n; int n1,n2; int main () { freopen("tiao.in","w",stdout); srand(time(0)); n=rand()%10; while(n--) { n1=rand()%200;n2=rand()%200; write(n1);space;write(n2);space; ne; for(int i=1;i<=n1;i++) { write(rand()%30000);space; } ne; for(int i=1;i<=n2;i++) { write(rand()%30000);space; } ne; } printf("0 0"); return 0; } ```
by 缥缈的鸿影 @ 2018-10-14 22:55:04


| 下一页