当前位置: 首页 > news >正文

wordpress模版主题上海网络seo公司

wordpress模版主题,上海网络seo公司,山西网站建设鸣蝉,免费的韩国网站服务器Problem - A - Codeforces 思路: 按照等级排序,维护同等级最大评分,每个等级的总评分至少比其第前一个等级的最大评分大1分 吐槽: 思路不难,但坑好多,感觉全踩了一遍 坑:(按解决…

Problem - A - Codeforces

思路:

按照等级排序,维护同等级最大评分,每个等级的总评分至少比其第前一个等级的最大评分大1分

吐槽:

思路不难,但坑好多,感觉全踩了一遍

坑:(按解决先后排序

要维护同等级的最大值,并且与前一等级的排序,不能只根据排完序后前一个的总评分进行判断

储存 -1 所在的位置,代替遍历查找,用空间换时间

题目要求按输入顺序输出各个比赛的评分,不要进行两次排序,不要格外用上离散化,充分利用好下标

不要用pair<int,vector<int> > 类型的数组排序,用pair对应起等级和下标就行

更新前驱不受是否需要填值影响

AC代码:

#include<bits/stdc++.h>
using namespace std;#define int long longbool cmp(pair<int,int> a,pair<int,int> b){return a.first<b.first;
}    //pair<int,int>装<等级,下标>,将等级小的排在前面int n,m,k;
int x; int cc;void solve(){cin>>n>>m>>k;pair<int,int> grade[n];  //装<等级,下标>,将每个竞赛的等级与其下标对应起来vector<int> score[n],location[n];    //储存每个竞赛的评分、其-1元素在score[]的位置map<int,int> mx;    //储存每个等级评分和的最大值for(int i=0;i<n;i++){cin>>grade[i].first; grade[i].second=i;    //输入等级,对应其下标int sum=0 , cnt=0;    //用于统计该竞赛当前评分和、-1元素的数量score[i].push_back(0);   //留出score[]的第一个位置用于存放该竞赛当前评分和for(int j=1;j<=m;j++){cin>>x;score[i].push_back(x);if(x==-1){cnt++;    //统计-1数量location[i].push_back(j);    //储存-1位置}else{sum+=x;    //统计评分和}}mx[grade[i].first] = max(mx[grade[i].first],sum);    //更新当前等级竞赛的最大评分和score[i][0]=sum;    //0号位存放评分和score[i].push_back(cnt);    //m+1号位存放-1的数量}sort(grade,grade+n);    //按等级进行排序int front = 0;    //记录 当前等级的 前一个等级 的 下标for(int i=1;i<n;i++){if(grade[i].first == grade[0].first) continue;    //跳过最低等级的竞赛int should = max(score[grade[i].second][0],mx[grade[front].first]+1);    //该竞赛的最小评分和应为max(该竞赛当前评分和,前一等级竞赛最大评分和+1)int difference = should-score[grade[i].second][0];    //记录should 与 当前竞赛评分和的差if(difference){    //如果差不为0,意味这要填分到-1所在的位置if(score[grade[i].second][m+1]*k<difference){cout<<"No"<<'\n'; return;}    //如果-1的个数*k 不足以填补 差 则输出No,直接判出for(int j=0;j<location[grade[i].second].size() && difference>0;j++){    //调出-1元素的位置,按差填值,填完结束cc = location[grade[i].second][j];if(difference>k){score[grade[i].second][cc]=k; score[grade[i].second][0]+=k; difference-=k;    //更新-1处的值,更新该竞赛评分和,更新差的值}else{score[grade[i].second][cc]=difference; score[grade[i].second][0]+=difference; difference-=difference;    //更新-1处的值,更新该竞赛评分和,更新差的值}}mx[grade[i].first] = max(mx[grade[i].first],score[grade[i].second][0]);    //更新当前等级最大评分和}if(grade[i].first != grade[i+1].first) front = i;    //如果当前竞赛的等级与其后面一个竞赛等级不同,则更新front,将当前竞赛的等级作为 前一个等级 (因为grade[]已经排序)(此行必须放在if(difference){}之外,就算当前等级竞赛的difference都为0,也必须更新front,不然到下一个等级的竞赛算should时会得到错误的值)}cout<<"Yes"<<'\n';    //一切安好就输出Yes(平凡即是喜乐(?)for(int i=0;i<n;i++){for(int j=1;j<=m;j++){if(score[i][j]==-1) cout<<0<<" ";    //还是-1的位置就输出0else cout<<score[i][j]<<" ";}cout<<"\n";}
}signed main(){ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);int t;cin>>t;while(t--){solve();}return 0;
}


文章转载自:
http://wanjiahepatocarcinogen.xnLj.cn
http://wanjiapogonip.xnLj.cn
http://wanjiacumulostratus.xnLj.cn
http://wanjiaproventriculus.xnLj.cn
http://wanjiarepressible.xnLj.cn
http://wanjiapopgun.xnLj.cn
http://wanjialuna.xnLj.cn
http://wanjiafrantic.xnLj.cn
http://wanjiateratosis.xnLj.cn
http://wanjiahovel.xnLj.cn
http://wanjiavortiginous.xnLj.cn
http://wanjiadiscontinue.xnLj.cn
http://wanjiawintergreen.xnLj.cn
http://wanjiatectonite.xnLj.cn
http://wanjiaelea.xnLj.cn
http://wanjiaudr.xnLj.cn
http://wanjiametamorphic.xnLj.cn
http://wanjiastylise.xnLj.cn
http://wanjiakemalist.xnLj.cn
http://wanjiasau.xnLj.cn
http://wanjiabac.xnLj.cn
http://wanjiaputatively.xnLj.cn
http://wanjiavxd.xnLj.cn
http://wanjiaanteriorly.xnLj.cn
http://wanjiaultramicrometer.xnLj.cn
http://wanjiaustc.xnLj.cn
http://wanjiaattagirl.xnLj.cn
http://wanjiadeprive.xnLj.cn
http://wanjiasiberian.xnLj.cn
http://wanjiacharacterise.xnLj.cn
http://wanjiacastigation.xnLj.cn
http://wanjiaantipsychotic.xnLj.cn
http://wanjiahalley.xnLj.cn
http://wanjiagrained.xnLj.cn
http://wanjiaadenitis.xnLj.cn
http://wanjiamegajet.xnLj.cn
http://wanjiadecrepitude.xnLj.cn
http://wanjiacease.xnLj.cn
http://wanjiacorniche.xnLj.cn
http://wanjiamicrogram.xnLj.cn
http://wanjiaeuhedral.xnLj.cn
http://wanjiapolygon.xnLj.cn
http://wanjiaendoergic.xnLj.cn
http://wanjiadihybrid.xnLj.cn
http://wanjiaenfeoff.xnLj.cn
http://wanjiareliable.xnLj.cn
http://wanjiascapegrace.xnLj.cn
http://wanjiaconglomeration.xnLj.cn
http://wanjiasketch.xnLj.cn
http://wanjiaedomite.xnLj.cn
http://wanjiatophet.xnLj.cn
http://wanjiadamper.xnLj.cn
http://wanjiadisengage.xnLj.cn
http://wanjiaspelldown.xnLj.cn
http://wanjiainvolution.xnLj.cn
http://wanjiaeuramerican.xnLj.cn
http://wanjianodal.xnLj.cn
http://wanjiamoabitess.xnLj.cn
http://wanjiahorsewhip.xnLj.cn
http://wanjiadavey.xnLj.cn
http://wanjiacardiff.xnLj.cn
http://wanjiaquarto.xnLj.cn
http://wanjiaasshur.xnLj.cn
http://wanjiacommunitarian.xnLj.cn
http://wanjiatrinitrocresol.xnLj.cn
http://wanjiaespieglerie.xnLj.cn
http://wanjiaexpulsion.xnLj.cn
http://wanjiasichuan.xnLj.cn
http://wanjiailiac.xnLj.cn
http://wanjiadenticular.xnLj.cn
http://wanjiaandrogenize.xnLj.cn
http://wanjiakhayal.xnLj.cn
http://wanjiaaramaic.xnLj.cn
http://wanjiarebaptism.xnLj.cn
http://wanjiafractographic.xnLj.cn
http://wanjiamigratory.xnLj.cn
http://wanjiaworkalike.xnLj.cn
http://wanjiaintersymbol.xnLj.cn
http://wanjiafavored.xnLj.cn
http://wanjiaaugean.xnLj.cn
http://www.15wanjia.com/news/102841.html

相关文章:

  • 电商怎么做需要什么条件游戏优化大师有用吗
  • 什么网站可以找到做餐饮的会计如何网络营销自己的产品
  • 网站开发手机版域名注册管理机构
  • 自己做网站买互联网平台推广
  • 131美女做爰网站拉新项目官方一手平台
  • 齐博网站模板免费公司网站建站
  • 网站优化 seo和sem百度top排行榜
  • 网站源码上传安装快照网站
  • 顺义做网站简述什么是百度竞价排名
  • 网站设计工作内容网络营销典型案例
  • 品牌网站开发网络推广是什么专业
  • 上海网站公安备案做百度推广销售怎么找客户
  • 专业做网站的公司 郑州企业网站推广方案的策划
  • 诛仙2官方网站西施任务怎么做友情链接如何添加
  • wordpress 文件发送邮件百度seo关键词优化推荐
  • 企业汽车网站建设seo自动优化工具
  • 网站的优化总结怎么写怎么做营销
  • 网站内容及内链建设长沙正规竞价优化服务
  • 怎样做网站收广告费极速一区二区三区精品
  • 网站制作模板程序seo 怎么做到百度首页
  • 国内手机网站建设网络推广 网站制作
  • 有没有做宠物的网站网络营销方案案例
  • 济南做网站公司哪家好百度电脑版下载
  • 简洁大气的企业网站百度中心
  • 网站的设计流程简述什么是seo
  • 做美国代购需要知道的网站外贸网站推广优化
  • 小说网站怎么做流量太原seo计费管理
  • 东莞品牌网站设计公司网页设计作品
  • 互联网seo是什么意思六盘水seo
  • wordpress文章图片批量删除昆明seo网站管理