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)的更多相关文章

  1. Codeforces Round #661 (Div. 3) D、E1 题解

    D. Binary String To Subsequences #贪心 #构造 题目链接 题意 给定一个\(01\)串\(s\),完全分割成若干子序列(注意,不要混淆子串与子序列的概念),其中的子序 ...

  2. 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 ...

  3. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  4. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  5. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  6. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

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

  8. 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 ...

  9. Codeforces Round #371 (Div. 1)

    A: 题目大意: 在一个multiset中要求支持3种操作: 1.增加一个数 2.删去一个数 3.给出一个01序列,问multiset中有多少这样的数,把它的十进制表示中的奇数改成1,偶数改成0后和给 ...

随机推荐

  1. django 自带的用户系统

    首先,我要说明一下,下面内容不是必须品,如果各位大神喜欢手写也是可以的,你也可以选择自带的功能来缩减你的代码量,提高效率! 第一步 系统配置用户表 首先,在models中创建用户表,导包 from d ...

  2. idea报错Selected Java version 11 is not supported by SDK (maximum 8)

    解决方案

  3. Tomcat详解系列(3) - 源码分析准备和分析入口

    Tomcat - 源码分析准备和分析入口 上文我们介绍了Tomcat的架构设计,接下来我们便可以下载源码以及寻找源码入口了.@pdai 源代码下载和编译 首先是去官网下载Tomcat的源代码和二进制安 ...

  4. Nacos 2.0 正式发布,性能提升了 10 倍!!

    前不久,在3月20号,Nacos 2.0.0 正式发布了!我简单看了下官方的介绍,可能nacos未来逐渐会成为各大公司作为服务治理和配置中心的主要中间件. Nacos 简介:一个更易于构建云原生应用的 ...

  5. 冒泡算法(BubbleSort)

    /*冒泡排序原理 比较相邻的元素.如果前一个元素比后一个元素大,就交换这两个元素的位置. 对每一对相邻元素做同样的工作,从开始第一对元素到结尾的最后一对元素.最终最后位置的元素就是最大值.实现步骤 1 ...

  6. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之裸金属-20

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之裸金属-20 欢迎加QQ群:1026880196 进行交流学习 近期我发现网上有人转载或者复制原创博客 ...

  7. Prime Ring Problem UVA - 524

    A ring is composed of n (even number) circles as shown in diagram. Put natural numbers 1,2,...,n int ...

  8. Day16_88_通过反射机制执行方法

    通过反射机制执行方法 * method.invoke(object,"admin","123"); * 代码 import java.lang.reflect. ...

  9. 2021 年最值得推荐的 7 个 Angular 前端组件库 - DevUI

    摘要:DevUI 是一款面向企业中后台产品的开源前端解决方案,它倡导沉浸.灵活.至简的设计价值观,提倡设计者为真实的需求服务,为多数人的设计,拒绝哗众取宠.取悦眼球的设计.如果你正在开发 ToB 的工 ...

  10. 《机器学习Python实现_10_02_集成学习_boosting_adaboost分类器实现》

    一.简介 adaboost是一种boosting方法,它的要点包括如下两方面: 1.模型生成 每一个基分类器会基于上一轮分类器在训练集上的表现,对样本做权重调整,使得错分样本的权重增加,正确分类的样本 ...