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. Vue.js 学习笔记之七:使用现有组件

    5.3 使用现有组件 在之前的五个实验中,我们所演示的基本都是如何构建自定义组件的方法,但在具体开发实践中,并非项目中所有的组件都是需要程序员们自己动手来创建的.毕竟在程序设计领域,"不要重 ...

  2. 精通模块化JavaScript

    近日读了一本名为<精通模块化JavaScript>的书,并记录了其中的精髓. 一.模块化思维 精通模块化开发并不是指要遵循一套定义明确的规则,而是指能够将自己置身于使用者的角度,为可能即将 ...

  3. MarkDown-简单学习

    标题 注意:首部添加1-6个"#"号来设置标题大小: 字体 1:粗体 (注意:首尾同时添加2个"*"号来设置) 2:斜体 (注意:首尾同时添加1个"* ...

  4. 复制文件--cp

    cp file1 file2    将文件拷贝到指定路径下 cp -r dir1 dir2  将文件夹拷贝到指定路径下

  5. [树形DP]没有上司的晚会

    没 有 上 司 的 晚 会 没有上司的晚会 没有上司的晚会 题目描述 Ural大学有N个职员,编号为1~N.他们有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结点的直接上司.每个职 ...

  6. Dynamics CRM与ADFS安装到同一台服务器后ADFS服务与Dynamics CRM沙盒服务冲突提示808端口占用问题

    当我们安装Dynamics CRM的产品时如果是单台服务器部署而且部署了IFD的情况会遇到一个问题就是ADFS服务的监听端口和Dynamics CRM沙盒服务的端口冲突了. 这样会导致两个服务中的一个 ...

  7. MySQL提升笔记(2):存储引擎盘点

    在前面我们了解了server层调用存储引擎层接口来完成sql的执行,使用存储引擎的好处是:每个存储引擎都有各自的特点,能够根据具体的应用建立不同存储引擎表. 需要注意的是,存储引擎是基于表的,而不是数 ...

  8. vscode(Visual Studio Code)中安装Debugger for Chrome插件调试页面

    最近换了下编辑器,改用vscode(Visual Studio Code),很喜欢它左边显示的文件路径,轻松新建文件夹和文件,也喜欢它的编码转换功能,gbk和utf-8可以随时切换,因为公司网站有些页 ...

  9. Java实现基于朴素贝叶斯的情感词分析

    朴素贝叶斯(Naive Bayesian)是一种基于贝叶斯定理和特征条件独立假设的分类方法,它是基于概率论的一种有监督学习方法,被广泛应用于自然语言处理,并在机器学习领域中占据了非常重要的地位.在之前 ...

  10. (十六)VMware Harbor 复制镜像

    Step 1: 点击复制镜像后 Step 2: 填写复制镜像信息 Step 3:在sx628下,会多出一个镜像