D的难度跨度太大了,先不写了。
A. Long Comparison
给出一个数字x1,后面添加p1个0,一个数字x2,后面添加p2个0。比较两个数字的大小,输出比较的情况。
x和p都是10的6次方的范围,直接乘肯定炸,那我们肯定是一边比一边乘,分情况讨论。
1.如果后面加0的个数相同,那么只要比较x1和x2的大小就可以了
2.如果加的0个数不同,我们要再分两种情况讨论,具体的看代码吧。

#include <bits/stdc++.h>using namespace std;
typedef long long ll;
int main()
{ll t,n,x1,x2,p1,p2;cin>>t;while(t--){cin>>x1>>p1;cin>>x2>>p2;if(p1==p2)  //直接比较x1,x2就可以了{if(x1>x2) {cout<<">"<<endl;continue;}if(x1==x2) {cout<<"="<<endl;continue;}if(x1<x2) {cout<<"<"<<endl;continue;}}if(p1>p2)  //如果x1的0多{ll i;int f=0;i=p1-p2;if(x1>=x2) {cout<<">"<<endl;continue;} //x1比x2还大,x1后面的0也多else{while(i--) //如果x1比x2小,就开始乘0{    x1=x1*10;if(x1>x2) {f=1;break;}  //乘到x1比x2大,输出就行}if(f==1) {cout<<">"<<endl;continue;} if(f==0){  //到最后都乘完都没x2大if(x1==x2) {cout<<"="<<endl;continue;}if(x1<x2) {cout<<"<"<<endl;continue;}}}}if(p1<p2)  //和上面的道理一样{ll i;int f=0;i=p2-p1;if(x1<=x2) {cout<<"<"<<endl;continue;}else{while(i--){    x2=x2*10;if(x2>x1) {f=1;break;}}if(f==1) {cout<<"<"<<endl;continue;}if(f==0){if(x1==x2) {cout<<"="<<endl;continue;}if(x1>x2) {cout<<">"<<endl;continue;}}}}}
}

本来十分钟就可以ac的,手打太快了导致有个符号写成了”-“,wr了一次还花了一分钟检查,多了11的罚时…
B. Absent Remainder
给出几组大小为n的数组,要在其中找到x,y需满足三个条件1.x!=y。2.x,y都是数组中的元素。3.xmody的余数不存在于数组中,输出n/2组答案即可。
比赛的时候我并没有想到简单的方法,直接用二重循环暴力查找,用map来记录数组中的数,只要找到n/2组数据就打破循环,这样虽然复杂度很高,但是只要找到n/2组数据就行了,所以还是ac了。
后来闲的没事去看别人的视频,发现人家排序完用其他的数余第一个数直接就过了…

#include <bits/stdc++.h>using namespace std;
typedef long long ll;
int a[200001];
int main()
{int i,n,t,j;cin>>t;while(t--){cin>>n;int ans=0,num=0;int k=0;ans=n/2;map<int,int>b;for(i=0;i<n;i++){cin>>a[i];b[a[i]]=1;}sort(a,a+n);for(i=0;i<n;i++){for(j=i+1;j<n;j++){if(num==ans) {k=1;break;}int x=a[j];int y=a[i];if(b[x%y]==0) {cout<<x<<" "<<y<<endl;num++;}}if(k==1) break;}}
}

C. Poisoned Dagger
打一个杀龙的游戏,你可以给龙使毒。给出t组数据,每组数据包含一个数组的大小n和龙的血量h,这个数组表示在这些时间你可以毒一次龙,在龙中毒期间毒它就刷新毒素但并不叠加。输出毒死这只龙,这个毒药应该持续的最短时间。
血量h最大为10的18次方,肯定不能直接遍历。我首先想到了二分答案,但是t的大小有1000,n有100,还要二分10的18次方,我选择用贪心去做了(其实二分完全能过,我想多了)。
贪心的想法是,我们要找到毒药的最小持续时间,最小的情况是什么?肯定是每一段毒的持续时间都没有浪费(即最小区间大于血量h除毒的次数的这个平均值)。但是对于一些情况,并没有满足我们想要的这个平均值,该人物就又再次使毒了,这样我们就只能减去它,然后再次使用这样的贪心思想。这时我们已经用掉了一个区间,所以求平均值的时候分母要减1了。从小到大一直采用这种思想,直到找到这些区间的最小值都大于这个平均值,那么接下来我们就可以把这些毒平分给每个区间了。以前减掉的那些区间不用管,对于我们现在找到的最小值肯定比以前减去的那些区间要大,那些毒浪费了就浪费了,我们没有办法。
我这里说的浪费毒是一种平均的思想,前面如果你小于平均值来毒龙,后面你就要用更长持续时间的毒药来毒死它,这样毒持续的最短时间就要加大。

#include <bits/stdc++.h>using namespace std;
typedef long long ll;
int main()
{int i,n,t,j;cin>>t;while(t--){ll a[101];ll b[101];ll h;cin>>n>>h;for(i=0;i<n;i++){cin>>a[i];}for(i=0;i<n;i++){b[i]=a[i+1]-a[i]; //我们把这些使毒的时间之差取出来再排个序}b[n-1]=100000000000000000000; //和龙的战斗时间非常长,最后一个区间是非常大的sort(b,b+n);int k=n;ll aver;int q=0;for(i=0;i<n;i++){aver=h/k;  if(h%k!=0) aver=aver+1; //如果平均值还有余数,那么平均值就要加一if(aver<=b[i]) {break;}//后面的区间毒不会被浪费了,平均分就可以了if(aver>b[i]) {h=h-b[i];  //我们想要平分的毒会被浪费掉,只能把它减去,继续分析下一次平分的情况k--;}}cout<<aver<<endl;//输出这个我们千辛万苦找到的平均分配的值}
}

我怀疑有同学偷看我cf的代码,咳咳。

Educational Codeforces Round 118 (Rated for Div. 2) A-C相关推荐

  1. Educational Codeforces Round 118 (Rated for Div. 2)/C. Poisoned Dagger

    记录自己两个月前打CF以来第一个在时限内过掉的C题(好耶!) 简单二分 #include<bits/stdc++.h> using namespace std; #define ll lo ...

  2. Educational Codeforces Round 118 (Rated for Div. 2) C. Poisoned Dagger(二分或搜索)

    C. Poisoned Dagger 题意: Monocarp is playing yet another computer game. In this game, his character ha ...

  3. 【CodeForces】Educational Codeforces Round 118 (Rated for Div. 2)【A-C】

    A. Long Comparison 思路 先判断字符长度 相等的字符长度判断填满0后判断字典序 AC代码 #pragma GCC optimize("Ofast") #pragm ...

  4. Educational Codeforces Round 114 (Rated for Div. 2) (A ~ F)全题解

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Educational Codeforces Round 114 (Rated for Div. 2) ...

  5. Educational Codeforces Round 106 (Rated for Div. 2)(A ~ E)题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 Educational Codeforces Round 106 (Rated for Div. ...

  6. Educational Codeforces Round 37 (Rated for Div. 2) 1

    Educational Codeforces Round 37 (Rated for Div. 2) A.Water The Garden 题意:Max想给花园浇水.花园可被视为长度为n的花园床,花园 ...

  7. Educational Codeforces Round 90 (Rated for Div. 2)(A, B, C, D, E)

    Educational Codeforces Round 90 (Rated for Div. 2) Donut Shops 思路 分三种情况: a==c/ba == c / ba==c/b这个时候两 ...

  8. Educational Codeforces Round 89 (Rated for Div. 2)(A, B, C, D)

    Educational Codeforces Round 89 (Rated for Div. 2) A. Shovels and Swords 思路 题意非常简单,就是得到最多的物品嘛,我们假定a, ...

  9. Educational Codeforces Round 114 (Rated for Div. 2) D. The Strongest Build 暴力 + bfs

    传送门 文章目录 题意: 思路: 题意: 你有nnn个装备槽,每个槽里面有cic_ici​个力量加成,对于每个槽只能选一个力量加成,现在给你mmm个力量组合[b1,b2,...,bn][b_1,b_2 ...

最新文章

  1. VSTO之旅系列(一):VSTO入门
  2. mySql安装时常见问题处理
  3. mongodb简单的函数
  4. 一家创业公司发展历程-真实记录
  5. openssl工具的使用以及创建私有CA
  6. div中的table内容过多时不超出div的范围解决方法
  7. uni-app获取腾讯地图计算两经纬度的实际距离(可批量)
  8. angularjs详解
  9. s905各种型号的区别_2020榨汁机推荐,榨汁机、原汁机和破壁机有什么区别?高性价比榨汁机、原汁机怎么选?...
  10. 一转眼,距 2021 竟然就不到 65 天了,你准备好了么?
  11. mongodb-Configuration
  12. wacom数位板怎么调压感_手绘板压感是什么 数位板压感怎么调【教程】
  13. C#开发WebService实例和发布
  14. 计算机除了冯诺依曼架构,什么是实用的非冯·诺依曼架构?
  15. 媒体:28省份已开展不动产登记机构整合工作
  16. 鸿蒙系统桌面壁纸,华为鸿蒙桌面怎么设置好看
  17. 中文谚语 enlish version
  18. Matlab实现蚂蚁群算法
  19. C++ string乱码可能解决方案
  20. 武汉好地科技浅析军工保密资质与涉密资质的区别

热门文章

  1. 数据可视化:对比漏斗图多维度分析大学在校实际开销情况
  2. 宁波保税区通证经济产业园开园,33复杂美CEO吴思进应邀出席
  3. 多智能体协同:实现智能系统的合作与共赢
  4. WebApp开发实践
  5. wireshark拦截手机数据包
  6. 静默安装ogg12.3提示ACTION: Specify an empty directory or an Oracle home containing the selected Oracle Gol
  7. 【BZOJ2893】征服王
  8. errmsg:config:invalid signat
  9. 女生适合学计算机应用技术,计算机应用技术专业 好就业吗?适合女生学吗?...
  10. android小工具-系统音量管理器