Codeforces Round #661 (Div. 3)
A. Remove Smallest
题意:数组是否满足任意i,j保证|ai-aj|<=1,如果都可以满足,输出YES,否则输出NO
思路:直接排序遍历即可
代码:

1 #include<iostream>
2 #include<algorithm>
3 #include<cstring>
4 #include<cstdio>
5 #include<cmath>
6 #include<queue>
7 #include<vector>
8 #include<set>
9 using namespace std;
10 int main(){
11 int t;
12 scanf("%d",&t);
13 while(t--){
14 int n;
15 scanf("%d",&n);
16 int a[100];
17 for(int i=0;i<n;i++){
18 scanf("%d",&a[i]);
19 }
20 sort(a,a+n);
21 int flag=0;
22 for(int i=1;i<n;i++){
23 if(a[i]-a[i-1]>1){
24 flag=1;
25 break;
26 }
27 }
28 if(flag==0){
29 printf("YES\n");
30 }else{
31 printf("NO\n");
32 }
33 }
34 }
B. Gifts Fixing
题意:两组数a[i],b[i],你可以对两组数的数字进行如下操作:1.加减1;2.同一位置的数一起加减1,则使得a1=a2=a3....=an,并且b1=b2=b3.....=bn,那么需要最少进行多少步
思路:先找出两组数中每组里面最小的那个数,每次循环进行比较a[i]与a[min],再找到a[i]和b[i]最大的那个数,直接算其和
代码:

1 #include<iostream>
2 #include<algorithm>
3 #include<cstring>
4 #include<cstdio>
5 #include<cmath>
6 #include<queue>
7 #include<vector>
8 #include<set>
9
10 using namespace std;
11 pair<int,int> a[100];
12 int main(){
13 int t;
14 scanf("%d",&t);
15 while(t--){
16 int n;
17 scanf("%d",&n);
18 long long int sum=0;
19 int minn1=1e9,minn2=1e9;
20 for(int i=0;i<n;i++){
21 scanf("%d",&a[i].first);
22 minn1=min(minn1,a[i].first);
23 }
24 for(int i=0;i<n;i++){
25 scanf("%d",&a[i].second);
26 minn2=min(minn2,a[i].second);
27 }
28 sort(a,a+n);
29 for(int i=0;i<n;i++){
30 sum+=max(a[i].second-minn2,a[i].first-minn1);
31 }
32 printf("%lld\n",sum);
33 }
34 }
C. Boats Competition
题意:一组数从中抽取两个数,保证a[1]+b[1]=a[2]+b[2]……=a[k]+b[k],一共最多可以抽取多少组
思路:直接进行统计,抽取的两个数只有两种情况,一种是等差中项是整数的,例如1.2.3;一种是等差中项不是整数的,例如1.2.3.4;直接存储其数值个数,进行循环比较最多,一定注意是取两个数的最小值,不是平均值,并且遍历的时候要从第一个for循环的i入手往前走,不要从1开始走
代码:

1 #include<iostream>
2 #include<algorithm>
3 #include<cstring>
4 #include<cstdio>
5 #include<cmath>
6 #include<queue>
7 #include<vector>
8 #include<set>
9 using namespace std;
10
11 int main(){
12 int t;
13 scanf("%d",&t);
14 while(t--){
15 int n;
16 scanf("%d",&n);
17 int a[60][2]={0};
18 int numl;
19
20 for(int i=1;i<=60;i++){
21 a[i][0]=i;
22 }
23 for(int i=1;i<=n;i++){
24 scanf("%d",&numl);
25 a[numl][1]++;
26 }
27 int sum=0,num=0;
28 for(int i=1;i<=n;i++){
29 num=0;
30 num+=a[i][1]/2;
31 for(int j=i-1;j>=1&&2*i-j<=n&&2*i-j>i;j--){
32 if(a[2*i-j][1]==0||a[j][1]==0){
33 continue;
34 }else{
35 num+=min(a[j][1],a[2*i-j][1]);
36 }
37 }
38 sum=max(num,sum);
39 }
40 for(int i=1;i<=n;i++){
41 num=0;
42 if(a[i][1]==0||a[i+1][1]==0){
43
44 }else{
45 num+=min(a[i][1],a[i+1][1]);
46 }
47 for(int j=i-1;j>=1&&2*i+1-j<=n&&2*i+1-j>i+1;j--){
48 if(a[j][1]==0||a[2*i+1-j][1]==0){
49 continue;
50 }else{
51 num+=min(a[j][1],a[2*i+1-j][1]);
52
53 }
54 }
55 sum=max(num,sum);
56 }
57 if(n==2){
58 printf("1\n");
59 continue;
60 }else{
61 printf("%d\n",sum);
62 }
63
64 }
65 }
Codeforces Round #661 (Div. 3)的更多相关文章
- Codeforces Round #661 (Div. 3) D、E1 题解
D. Binary String To Subsequences #贪心 #构造 题目链接 题意 给定一个\(01\)串\(s\),完全分割成若干子序列(注意,不要混淆子串与子序列的概念),其中的子序 ...
- Codeforces Round #366 (Div. 2) ABC
Codeforces Round #366 (Div. 2) A I hate that I love that I hate it水题 #I hate that I love that I hate ...
- Codeforces Round #354 (Div. 2) ABCD
Codeforces Round #354 (Div. 2) Problems # Name A Nicholas and Permutation standard input/out ...
- Codeforces Round #368 (Div. 2)
直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...
- cf之路,1,Codeforces Round #345 (Div. 2)
cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅..... ...
- Codeforces Round #279 (Div. 2) ABCDE
Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems # Name A Team Olympiad standard input/outpu ...
- Codeforces Round #262 (Div. 2) 1003
Codeforces Round #262 (Div. 2) 1003 C. Present time limit per test 2 seconds memory limit per test 2 ...
- Codeforces Round #262 (Div. 2) 1004
Codeforces Round #262 (Div. 2) 1004 D. Little Victor and Set time limit per test 1 second memory lim ...
- Codeforces Round #371 (Div. 1)
A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...
随机推荐
- 获得PyInstaller打包exe的py源码
参考链接:https://laucyun.com/33359ed9f725529ac9b606d054c8459d.html way1:pyi-archive_viewer 提取pyc,uncomp ...
- io流(文件字符流(FileReader,FileWriter文件的复制))
文件字符流(FileReader,FileWriter文件的复制) 文件的复制 效率低的方法 注意:字符流需要刷新操作,字节流不需要,只有刷新后才可以将程序中的内容导入到目标文件中 package c ...
- 2021精选 Java面试题附答案(一)
1.什么是Java Java是一门面向对象的高级编程语言,不仅吸收了C++语言的各种优点,比如继承了C++语言面向对象的技术核心.还摒弃了C++里难以理解的多继承.指针等概念,,同时也增加了垃圾回收机 ...
- 全网最详细的Linux命令系列-touch命令
linux的touch命令不常用,一般在使用make的时候可能会用到,用来修改文件时间戳,或者新建一个不存在的文件. 命令格式: touch [选项]... 文件... 命令参数: -a 或--tim ...
- 没想到吧,Java开发 API接口可以不用写 Controller了
本文案例收录在 https://github.com/chengxy-nds/Springboot-Notebook 大家好,我是小富~ 今天介绍我正在用的一款高效敏捷开发工具magic-api,顺便 ...
- [hash]集合
集合 题目描述 给定两个集合A.B,集合内的任一元素x满足1 ≤ x ≤ 109,并且每个集合的元素个数不大于105.我们希望求出A.B之间的关系. 任 务 :给定两个集合的描述,判断它们满足下列关系 ...
- Facebook资深工程师带你学Python核心技术
人工智能时代下,Python毫无疑问是最热的编程语言.在推开Python的大门后却发现,Python入门容易但精通却不易. 想要精通这门语言,必须真正理解知识概念,比如适当从源码层面深化认知,然后熟悉 ...
- 交换机之间的通信 VLAN和trunk
只有 PC0和PC2可通信,PC1和PC3可通信 将PC0和PC2加入同一个VLAN 将PC1和PC3加入同一个VLAN 将左边的交换机的Fa0/3口开启trunk模式即可(如下图)
- 通过Dapr实现一个简单的基于.net的微服务电商系统(六)——一步一步教你如何撸Dapr之Actor服务
我个人认为Actor应该是Dapr里比较重头的部分也是Dapr一直在讲的所谓"stateful applications"真正具体的一个实现(个人认为),上一章讲到有状态服务可能很 ...
- 测试报告模板:HTMLTestRunner.py(新版)
报告样式效果: 报告源码:HTMLTestRunner.py 1 """ 2 A TestRunner for use with the Python unit test ...