Codeforces Round #627 (Div. 3)
1324A - Yet Another Tetris Problem(思维)
题意
- 给一个数组,每一个数组中的元素大小表示在竖直方向的方块数量,元素相邻怎竖直方向的方块也相邻,类似于俄罗斯方块当底层被堆满的时候,那么那一层可以被消去,然后我们可以在任意一个元素(数列)上 + 2 两个小方块,可以放任意多次数,问最终能不能通过这些操作能不能把所有的小方块消去。
思路
- 思路:我们可以先把底层的能消除的消除,如果消除之后 所给的数组元素中还有奇数,那么无论怎么 操作 都不能 消除完
代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<string>
#include<vector>
#include<map>
using namespace std;
#define ll long long
#define db double
int main()
{
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//freopen("A.txt","r",stdin);
int t;
cin >> t;
while(t --)
{
int n;
cin >> n;
int ar[105];
int mn = 1e9;
for(int i = 1; i <= n; i ++)
cin >> ar[i], mn = min(mn, ar[i]);
int have_odd = 0;
for(int i = 1; i <= n; i ++)
{
ar[i] -= mn;
if(ar[i] % 2 != 0)
{
have_odd = 1;
break;
}
}
if(have_odd)
cout << "NO\n";
else
cout << "YES\n";
}
return 0;
}
- 收获:就是一个简单的观察
1324B - Yet Another Palindrome Problem(思维)
题意
- 给一个序列,问在这个子序列中能否找到一个 回文 子串。
思路
- 这一题我们可以用 map 的特性去遍历一遍所给的数组,同在这个序列中都有哪些 数字出现过,并且记录第一次出现的位置,这样我们在从右自左遍历这个序列,我们没遍历到一个元素 我们就 用map看看是否这个 数字已经出现过了,如果没有,就去往后遍历,如果有 我们就判断两个 两个相同的数组出翔位置,的间隔差 是否大于1,如果大于,那么这两个相同的数就可以与这两个位置中的任意一个数组成一个 回文子串了;如果小于等于1 没法组成会微,继续向下遍历吧
代码
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<string>
#include<vector>
#include<map>
using namespace std;
#define ll long long
#define db double
int main()
{
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
//freopen("A.txt","r",stdin);
int t;
cin >> t;
while(t --)
{
int n;
cin >> n;
map<int, int> mp;
int ar[50005];
for(int i = 1; i <= n; i ++)
{
cin >> ar[i];
if(! mp[ar[i]])
{
mp[ar[i]] = i;
}
}
int flag = 0;
for(int i = n; i > 1; i --)
{
if(mp[ar[i]] && i - mp[ar[i]] > 1)
{
flag = 1;
break;
}
}
if(! flag)
cout << "NO\n";
else
cout << "YES\n";
}
return 0;
}
- 收获:读好题,利用好map 的记录某个一个状态、某个数的位置/出现过没有,当我们把某个数带入map中之后,同过判读是否为0,就可以判读啊某个状态、位置、出现过没没有,通过一前一后呼应 来做题
1324C - Frog Jumps
题意
- 给我们一个长度为 n有 ‘L、R’ 字符组成的序列,序列下标从 1 开始,一个青wa在该序列的下标0位置,想要到下标n+1位置,开始的时候
Codeforces Round #627 (Div. 3)的更多相关文章
- [每日一题2020.06.07]codeforces Round #627 (Div. 3)
problem A /* * Author: RoccoShi * Time: 2020-06-07 19:37:51 */ #include <bits/stdc++.h> using ...
- Codeforces Round #627 (Div. 3) F - Maximum White Subtree(深度优先搜索)
题意: n 个点 n - 1 条边的树,问每个点所在所有子树中白黑点数目的最大差. 思路: 白点先由下至上汇集,后由上至下分并. #include <bits/stdc++.h> usin ...
- Codeforces Round #627 (Div. 3) E - Sleeping Schedule(递推)
题意: 每天有 h 小时,有一序列 an,每次可以选择 ai 或 ai - 1 小时后睡觉,问从 0 次 0 时开始,最多在 l ~ r 时间段入睡多少次. 思路: 如果此时可达,计算此时可达的时间点 ...
- Codeforces Round #627 (Div. 3) D - Pair of Topics(双指针)
题意: 有长为n的a,b两序列,问满足ai+aj>bi+bj(i<j)的i,j对数. 思路: 移项得:(ai-bi)+(aj-bj)>0,i<j即i!=j,用c序列保存所有ai ...
- Codeforces Round #627 (Div. 3) C - Frog Jumps(逻辑)
题意: 有一个每个单元标明移动方向的长为n的序列,每次移动不能超过距离k,问能够从0移动到n+1的k的最小值. 思路: k=最长连续L序列长度+1. #include <bits/stdc++. ...
- Codeforces Round #627 (Div. 3) B - Yet Another Palindrome Problem(逻辑)
题意: 问一个数组中是否存在至少长为3的回文子数组(按下标排列,可不连续). 思路: 找三个相同数或两个不连续的相同数. #include <bits/stdc++.h> using na ...
- Codeforces Round #627 (Div. 3) A - Yet Another Tetris Problem(逻辑)
题意 : 有n个高度,可以使任一高度加二任意次,问最终n个高度可否相同. 思路: 因为添加的2x1的方块不可旋转,只需考虑所有高度是否为同一奇偶性即可. #include <bits/stdc+ ...
- 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 ...
随机推荐
- js之重写原型对象
“实例中的指针仅指向原型,而不是指向构造函数”. “重写原型对象切断了现有原型与任何之前已经存在的对象实例之间的关系:它们引用的仍然是最初的原型”.——前记 var fun = function(){ ...
- 304 Not Modified
304 Not Modified,不是服务器发出的错误,是服务器所承载的业务系统在开发时为了节省带宽和提升浏览器的体验,对GET/js,css,image等执行了缓存机制.客户端第一次对服务器发出GE ...
- NTP网络时钟服务器品牌
NTP网络时钟服务器品牌 在科技的不断进步和发展下,时钟的种类和功能也在发生着变化,以满足人们的各种需求,时钟从原始的机械时钟发展成具有多钟功能的时钟.而时钟服务器主要是给时钟提供时间信息的,时钟服务 ...
- Button相关设置
2020-03-11 每日一例第4天 1.添加按钮1-6,并修改相应的text值: 2.窗体Load事件加载代码: private void Form1_Load(object sender, Ev ...
- 学习ConcurrentHashMap1.7分段锁原理
1. 概述 接上一篇 学习 ConcurrentHashMap1.8 并发写机制, 本文主要学习 Segment分段锁 的实现原理. 虽然 JDK1.7 在生产环境已逐渐被 JDK1.8 替代,然而一 ...
- 工具之scroolToIndex
需求定位:导航中实现子元素滚动到父元素的最左侧 解决方案:查找该子元素的offsetLeft值,然后让父元素滚动offsetLeft,parenDom.scrollLeft = childDom.of ...
- vue 父子组件 基础应用scrollball v-model sync
# 组件之间通信 可以通过 v-model 子组件可以通过 改变数据来改变父组件的数组 * v-model 子组件需要接受value属性,需要出发this.$emit("input&qu ...
- Hadoop集群搭建(一)~虚拟机的创建
Hadoop集群的搭建包括,虚拟机系统的安装:安装JDK,Hadoop:克隆虚拟机:伪分布式的搭建:安装zookeeper:Hive:Hbae:Spark等等: 我将分为多篇文章来记录.这篇文章主要写 ...
- 聊一聊React中虚拟DOM
1. 什么是虚拟 DOM 在 React 中实际上是 render 函数中return 的内容会生成 DOM,return 中的内容由两部分组成,一部分是 JSX ,另一部分就是 state 中的数据 ...
- tempdb 日志文件增长的问题
前两天在一个客户那里发现tempdb log 文件增长很大,已经使用40GB了,而tempdb log 文件总的分配空间是70GB,并且日志空间貌似不能重用,他们使用sql 2012 打的sp4补丁, ...
- [每日一题2020.06.07]codeforces Round #627 (Div. 3)