首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

hdu 4020 良好的set和结构体的结合运用 很帅的一个题

2012-12-20 
hdu 4020很好的set和结构体的结合运用很帅的一个题啊Ads ProposalTime Limit: 10000/5000 MS (Java/Others

hdu 4020 很好的set和结构体的结合运用 很帅的一个题啊

Ads ProposalTime Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others)
Total Submission(s): 1537    Accepted Submission(s): 534


Problem DescriptionInputOutputSample InputSample OutputSourceRecommend#include<stdio.h>#include<string.h>#include<set>using namespace std;#define ll __int64struct haha{ll c;ll l;bool operator<(const haha &x) const //由于set只能按一个元素排序 结构体有多个元素必须指定一个元素排序 {return c>x.c;//从大到小 }}a;set<haha>ss[100000+10];set<haha>::iterator it;int getval()//快速输入法{ int ret(0); char c; while((c=getchar())==' '||c=='\n'||c=='\r'); ret=c-'0'; while((c=getchar())!=' '&&c!='\n'&&c!='\r') ret=ret*10+c-'0'; return ret;}ll ans[500100];int main(){int i,cas,n,m,q,c_num=0,j;//scanf("%d",&cas);cas=getval();while(cas--){//scanf("%d %d %d",&n,&m,&q);//由于数据量极大 所以用上面那种输入方式 注意当你超时的时候一定要想起用这个n=getval();m=getval();q=getval();for(i=0;i<=n;i++) ss[i].clear();//靠!!!!!这里少了个=号 一个劲的错 哎 小心使得万年船啊for(i=0;i<m;i++){int user;user=getval();a.c=(ll)getval();a.l=(ll)getval();//scanf("%d %I64d %I64d",&user,&a.c,&a.l);ss[user].insert(a);}memset(ans,0,sizeof(ans));for(i=1;i<=n;i++){ int cnt=1; for(it=ss[i].begin();it!=ss[i].end();it++) { ans[cnt]+=(*it).l; cnt++; }} for(i=1;i<=m;i++) { ans[i]+=ans[i-1]; }printf("Case #%d:\n",++c_num);for(i=0;i<q;i++){int k;k=getval();if(k>m) k=m; printf("%I64d\n",ans[k]);}}return 0;}





热点排行