题目列表

  • 1.A. Construct a Rectangle-Educational Codeforces Round 120 (Rated for Div. 2)
  • 2.B. Berland Music-Educational Codeforces Round 120 (Rated for Div. 2)
  • 3.C. Set or Decrease-Educational Codeforces Round 120 (Rated for Div. 2)

1.A. Construct a Rectangle-Educational Codeforces Round 120 (Rated for Div. 2)

题意:给三个整数a,b,c。你必须将一个线段切成两个线段,而且所形成的线段长度不能小于1,。问切断之后的四个整数能否形成一个长方形。

题解:如果有两个数相等,第三个数是偶数输出yes,是奇数输出no。如果两个加起来等于第三个数输出yes,否则输出no。

解释:就是找两对相等的数。

AC代码:

#include <iostream>
#include <string>
#include <string.h>
#include <cmath>
#include <math.h>
#include <iomanip>
#include <cstdio>
#include <stdlib.h>
#include <algorithm>using namespace std;
#define ll long long
int main()
{//    freopen("1.txt","r",stdin);int t;cin>>t;int a,b,c;int n,m;while(t--){cin>>a>>b>>c;int flag=0;if(a==b&&c%2==0) flag=1;if(c==b&&a%2==0) flag=1;if(a==c&&b%2==0) flag=1;if(a+b==c) flag=1;if(a+c==b) flag=1;if(c+b==a) flag=1;if(flag) cout<<"YES"<<endl;else cout<<"NO"<<endl;}return 0;
}

2.B. Berland Music-Educational Codeforces Round 120 (Rated for Div. 2)

题意:B同学很喜欢音乐。有n首音乐,每个音乐都有自己的排名,排名从1到n不会重复。题目按照音乐的序号给出音乐的排名。B对于这n首音乐有喜欢的。B把不喜欢的放在前面,喜欢的在后面。注意,所有不喜欢的都在喜欢的前面。问找出一种满足题意的排列方式,使abs(初始排名-操作后的排名)从1到n求和最小。

题解:先按照喜欢不喜欢进行排序。在喜欢里面按照初始排名进行排序,在不喜欢里面也同样,只不过这两次排序是局部的。进行排名。然后按照序号进行排序输出就可以了。

解释:我也不知道原理,分析例题得出的结论。

AC代码:

#include <iostream>
#include <string>
#include <string.h>
#include <cmath>
#include <math.h>
#include <iomanip>
#include <cstdio>
#include <stdlib.h>
#include <algorithm>using namespace std;
#define ll long longstruct z{int first;int  second;int third;int fouth;
}a[200010];
bool cmp(z a,z b)
{if(a.second==b.second) return a.first<b.first;else return a.second<b.second;
}
bool cmp2(z a,z b)
{return a.fouth<b.fouth;
}
int n,m;int main()
{//    freopen("1.txt","r",stdin);int t;int i1,i2,i3,i4,i5;cin>>t;while(t--){cin>>n;for(i1=1;i1<=n;i1++){cin>>a[i1].first;a[i1].fouth=i1;}for(i1=1;i1<=n;i1++){char c;cin>>c;a[i1].second=c-'0';}sort(a+1,a+1+n,cmp);for(i1=1;i1<=n;i1++){a[i1].first=i1;}sort(a+1,a+1+n,cmp2);for(i1=1;i1<=n;i1++){if(i1==1) cout<<a[i1].first;else cout<<" "<<a[i1].first;}cout<<endl;}return 0;
}

3.C. Set or Decrease-Educational Codeforces Round 120 (Rated for Div. 2)

题意:有n个数的数组。给定k。每次可以选择下面两种操作中的一种:1,选择一个数-1。2,选择两个数使第二个数等于第一个数。进行一系列操作后使得数组的元素和小于k。问最小的操作次数是多少。

题解:太麻烦了。有不会的直接私信我。

解释:结合两个步骤来看。我们先把最小的减小,然后令较大的几个数等于最小的就可以了。可是最小的减小几个,最大的选择几个很关键。如果我们选择m个数,那最小的每减去1,再令较大的m个数等最小值,我们会发现总体下降了m+1+(m个数的和减去最小值的m倍)。原理就是这个,后面的太麻烦了。

AC代码:

#include <iostream>
#include <string>
#include <string.h>
#include <cmath>
#include <math.h>
#include <iomanip>
#include <cstdio>
#include <stdlib.h>
#include <algorithm>using namespace std;
#define ll long long
ll a[200005],sum1[200005],b[200005];
ll n,m,p,q;int main()
{//    freopen("1.txt","r",stdin);int t;ll i1,i2,i3,i4,i5;cin>>t;while(t--){cin>>n>>m;memset(sum1,0,sizeof(sum1));ll sum2=0;for(i1=1;i1<=n;i1++){scanf("%lld",&a[i1]);sum2+=a[i1];}if(sum2<=m) {cout<<0<<endl;continue;}sort(a+1,a+n+1);for(i1=2;i1<=n;i1++){a[i1]=a[i1]-a[1];}for(i1=n;i1>=1;i1--){sum1[i1]=a[i1]+sum1[i1+1];b[i1]=n-i1+1;}i1=n;ll min1=sum2-m;p=min1;while(i1>=2){ll temp=0;if(sum1[i1]>=p) {min1=min(min1,b[i1]);break;}if((p-sum1[i1])%(n-i1+2)==0) temp+=(p-sum1[i1])/(n-i1+2);else temp+=((p-sum1[i1])/(n-i1+2))+1;b[i1]+=temp;min1=min(min1,b[i1]);i1--;}cout<<min1<<endl;}return 0;
}

Educational Codeforces Round 120 (Rated for Div. 2)相关推荐

  1. Daily Practice 5th:Educational Codeforces Round 120 (Rated for Div. 2)

    VP*5; A. Construct a Rectangle 给出三根木棒,任意断开一根,要满足所得到的木棒长度都是整数,且四根木棒可以组成一个矩形,问是否可以按照要求组成这样一个矩形. 思路: 分情 ...

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

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

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

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

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

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

  5. 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这个时候两 ...

  6. 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, ...

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

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

  8. Educational Codeforces Round 72 (Rated for Div. 2) D. Coloring Edges dfs树/拓扑找环

    传送门 文章目录 题意: 思路: 题意: 给你一张图,你需要给这个图的边染色,保证如果有环那么这个环内边的颜色不全相同,输出染色方案和用的颜色个数. n,m≤5e3n,m\le5e3n,m≤5e3 思 ...

  9. Educational Codeforces Round 111 (Rated for Div. 2) D. Excellent Arrays 组合数学

    传送门 文章目录 题意: 思路: 题意: 给你一个数组aia_iai​,定义一个数组是好的当且仅当对于所有iii都有ai!=ia_i!=iai​!=i.定义f(a)f(a)f(a)表示数组aaa中i& ...

最新文章

  1. 献上程序员大学四年珍藏的30个宝藏网站,全部拿出来
  2. JS实例学习笔记——w3cschool+菜鸟教程
  3. Python字典:字典操作
  4. 丁奇 mysql_丁奇-MySQL实战读书笔记4
  5. java流式api,Java 8 中流式API性能基准测试
  6. 如何用java弄相对布局_用java 编码实现相对布局界面
  7. Windows7下无法安装Oracle11.1.0问题
  8. 如何设置Android Studio绘制布局时的视图
  9. python入门之正则表达式
  10. win11开机动画关闭教程
  11. 入门系列- ABP 本地化
  12. Boot重抽样获取logistic回归内部验证AUC可信区间
  13. 初识html及工具的使用
  14. 电商宝打单发货-菜鸟面单回收
  15. 交易思想之顺大势逆小势
  16. 安防监控系统流媒体服务器,搭建一套安防监控系统RTSP/Onvif网络摄像头视频流媒体服务有哪些核心要素?...
  17. VIT Adapter【Vision Transformer Adapter for Dense Predictions】论文笔记
  18. 智慧建筑行业创业机会分析
  19. 【Kubernetes 018】cfssl创建证书并结合RBAC的RoleBinding配置新用户config文件操作详解
  20. 人脸检测工具face recognition的安装与应用

热门文章

  1. 如何利用日语翻译软件快速进行日语翻译
  2. 网站推广的十种方式(初级篇)!
  3. Android控制蓝牙票据打印
  4. ProCAST一键导出有限元模型的几何拓扑和属性信息
  5. excel自动筛选_自动更改Excel筛选器标题
  6. Pytorch快速计算余弦相似性矩阵
  7. 线程调度和同步化(2)
  8. java给教师排课模块,java选排课系统
  9. srt 字幕格式 和 json数组之间的相互转换
  10. Android 中颜色透明度值