Codeforces Round #839 (Div. 3) (D,E)
D. Absolute Sorting
题意:给定一个长度为n的数组a,仅可以执行该操作1次:选定一个数x 将ai变为 |ai-x|。问是否存在 x 使得 a 操作后变成非下降数组。存在的话输出任意一个符合条件的x即可。
思路:遍历数组a,维护x的取值范围[l,r]即可。对于ai,若,更新 r 为
,若
,更新l为
,若相等无需操作。如果过程中l>r ,输出-1即可。否则输出[l,r]中任意一个数即可。
#include<bits/stdc++.h>
#define int long long
#define PII pair<int,int>
#define ios ios::sync_tith_stio(false);cin.tie(0);cin.tie(0)using namespace std;const int N=2e5+10;
const int inf=1e9;int n,k;
int a[N];void solve(){cin >> n;set<int> st;for(int i=1;i<=n;i++){cin >> a[i];}int l=0,r=inf;for(int i=2;i<=n;i++){// cout << l << " " << r << endl;if(a[i]<a[i-1]) l=max(l,(a[i]+a[i-1]+1)/2);else if(a[i]>a[i-1])r=min(r,(a[i]+a[i-1])/2);if(l>r){cout << "-1" << endl;return ;}}// cout << l << " " << r << endl;if(l>r) cout << "-1" << endl;else cout << (l+r)/2 << endl;
}signed main(){int t=1;cin >> t;while(t--){solve();}
}
E. Permutation Game
题意:两人游戏,给定长度为n的排列a,初始每个位置都为红色。两人轮流进行一下操作的一种:
1.随意改变所有蓝色位置的数字的顺序
2.将红色染成蓝色
3.不操作,pass
先手赢的条件为:排列为升序 后手赢的条件为:排列为降序
问先手赢还是后手赢或者平局
思路:对于 先手无需去染色,
后手无需去染色,其余的两者都需要去染色。假设有num1 个
,num2 个
,num3=n-(num1+num2)。
先手需要染 num2+num3 个,后手需要染 num1+num3 个 ,每个人需要染的总个数为=自己必须要染的+两人都需要染的。如果其中一人染完所有他要染的 并且 另一人还没染完他必须要染的,则他必胜,否则对于两个人都需要染的第三部分,谁都不会去染最后一个格子(因为此时两人必须要染的都染完了,只需等所有要染的都染完等下一回合交换顺序即可),此时平局
#include<bits/stdc++.h>
#define int long long using namespace std;const int N=5e5+10;int a[N];
int n;void solve(){cin >> n;int num1=0,num2=0,num3=0;for(int i=1;i<=n;i++){cin >> a[i];if(a[i]==i) num1++; //先手不需要涂的else if(a[i]==n-i+1) num2++; //后手不需要涂的else num3++; //两者都需要涂的}int res1=num3+num2; //先手需要涂的int res2=num3+num1; //后手需要涂的if(res1<=num1){cout << "First" << endl;return ;}if(res2<num2){cout << "Second" << endl;return ;}cout << "Tie" << endl;
}signed main(){int t=1;cin >> t;while(t--){solve();}return 0;
}
Codeforces Round #839 (Div. 3) (D,E)相关推荐
- Codeforces Round #839 (Div. 3)题解
A. A+B? 直接读入字符串然后把下标0和2的数字提取出来就行 // Problem: A. A+B? // Contest: Codeforces - Codeforces Round #839 ...
- Codeforces Round #839 (Div. 3)
Problem - G - Codeforces (1)题目大意 一个人想提升下棋的rating,但是他只能一轮一轮来,若是他大于或者等于对战的那个人的rating,他的rating就会加1,那个对战 ...
- Codeforces Round #698 (Div. 2)(A ~ F)6题全,超高质量题解)【每日亿题】2021/2/4
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 目录 [每日亿题]Codeforces Round #698 (Div. 2)(A ~ F)6题全,超 ...
- Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...
- Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...
- Codeforces Round #808 (Div. 1)(A~C)
Codeforces Round #808 (Div. 1)(A~C) A:Doremy's IQ 题目大意 给你一个序列,然后你从左到右可以选择弄或者不弄. 然后你有一个智商值,如果你当前弄的数小于 ...
- Codeforces Round #699 (Div. 2) (A ~ F)6题全,超高质量良心题解【每日亿题】2021/2/6
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) (A.B.C)[每日亿题]2021/2/ ...
- Codeforces Round #739 (Div. 3)(AK实况)
Codeforces Round #739 (Div. 3) A. Dislike of Threes 找到第kkk个既不是333的倍数,个位数上也不是333的数,也已预处理然后O(1)O(1)O(1 ...
- Codeforces Round #839 (Div. 3) C. Different Differences
Problem - C - Codeforces 题意: 给定n和k,让你构造一个长度为k的数列,使其差分数组的数的种类尽可能多 思路: 贪心+构造 种类尽可能多,那就让1 ,+1之后+2,+3,.. ...
最新文章
- 【重建】从FJOI2016一试谈起
- java主动抛出400异常_400个线程同时查询数据,抛出一个异常
- 神器!Pytorch结构化神经网络修剪工具包
- Windows 8实用窍门系列:10.Windows 8的基本变换和矩阵变换以及AppBar应用程序栏
- 笔记-中项案例题-2021年上-人力资源管理和沟通管理
- C# 文件操作详解(一)---------File类
- mysql 5.5 主从同步问题_MySQL 5.5 主从复制异步、半同步以及注意事项详解
- RecordMyDesktop安装与使用
- 百度鹰眼html打开,BMap:WEB 服务API
- shiro 实现自己定义权限规则校验
- 今日博文视点大咖直播伴你读No.3:数据分析学习之道
- cyyz: Day 6 平衡树整理
- 医疗机构做直播前的预告应该怎么做?
- SPSS16 视频教程 共17章全
- 高精度数字温度传感器为基于RTD和医疗应用的设计带来简便性
- CVE-2018-0802个人浅析
- 中国历史朝代及皇帝简介
- 【2021-11-16】小红书web端数美验证码
- 孙向晖-《领域驱动设计》读书心得交流会-UMLChina讲座-实录
- 手撕龙书 第一章 认识编译器