Codeforces Round #691 (Div. 2)
A. Red-Blue Shuffle
题意:有两个长度为n的数组,数组a和数组b,问那个数组中的数字相比之下比另一个数组中相应位置的元素值更大一些,如果数组a大就输出RED,如果数组b大就输出BLUE,否则就输出EQUAL
思路:直接进行分开两个数组,然后%1d读入,再直接进行比较即可
代码:

1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cmath>
5 #include<cstring>
6 using namespace std;
7 int main(){
8 //int r=0,b=0;
9 int t;
10 scanf("%d",&t);
11 while(t--){
12 int n;
13 int r=0,b=0;
14 scanf("%d",&n);
15 int a[n+1],bb[n+1];
16 for(int i=0;i<n;i++){
17 scanf("%1d",&a[i]);
18 }
19 for(int i=0;i<n;i++){
20 scanf("%1d",&bb[i]);
21 }
22 for(int i=0;i<n;i++){
23 if(a[i]>bb[i]){
24 r++;
25 }
26 if(a[i]<bb[i]){
27 b++;
28 }
29 }
30 if(r>b){
31 printf("RED\n");
32 }else if(r<b){
33 printf("BLUE\n");
34 }else{
35 printf("EQUAL\n");
36 }
37 }
38 }
B.Move and Turn
题目:有一个无限大的二维平面,现在有个机器人在上面走动,走动的规则是:当走动一个单位时,机器人就要顺时针或者逆时针旋转90°,问现在要走n步,走到的不同的位置有多少个
思路:直接进行规律寻找,如果步数是偶数的话,就直接输出(n/2+1)*(n/2+1),如果步数是奇数的话,就输出(1+k)*k*2,并且k=(n+1)/2
想不通的地方:当时觉得可能是个组合数学的题,然后就在纸上画来画去试图找到里面的规律,后来发现这样太混乱了,然后敲打代码,发现dfs也不是很好写,然后就看了看一些关于这个题的证明发现其实那些证明还是很含糊的
启示:以后这种找规律的题,可以先写一个代码dfs一下,然后再试图找找里面的规律性,就是用你知道的会TLE掉的代码,进行实验找到里面的规律
代码:

1 #include<iostream>
2 #include<algorithm>
3 #include<cstdio>
4 #include<cstring>
5 #include<cmath>
6 using namespace std;
7 int main(){
8 int n;
9 scanf("%d",&n);
10 if(n%2==0){
11 printf("%d\n",(n/2+1)*(n/2+1));
12 }else{
13 int k=(n+1)/2;
14 printf("%d\n",(1+k)*k*2);
15 }
16 }
C.Row GCD
题意:看公式就是进行两个数组,然后第一个数组的所有数第一次加上第二个数组的第一个数,然后数组第一个数组的最大公约数,以此类推再是原来的第一个数组加上第二个数组的第二个元素,然后输出现在这个数组中最大的公约数
思路:其实跟直接计算没有什么差别,就是巧用了下
1、gcd(a1,a2,a3,a4……)=gcd(a1,gcd(a2,a3,a4……))
2、gcd(a1,a2) = gcd(a1 , a2-a1)
然后就可以推导题目所求
gcd(a1+d , a2+d , a3+d , a4+d)=gcd(a1+d , a2 - a1 , a3 - a2 , a4 - a3 ) = gcd(a1+d , gcd ( a2 - a1 , a3 - a2 , a4 - a3 ) )
代码:

1 #include<bits/stdc++.h>
2 using namespace std;
3 typedef long long LL;
4 const int N=2e5+10;
5 LL a[N],b[N];
6 LL gcd(LL a,LL b)
7 {
8 if(b==0) return a;
9 else return gcd(b,a%b);
10 }
11 int main()
12 {
13 int n,m;
14 scanf("%d%d",&n,&m);
15 for(int i=1;i<=n;i++)
16 scanf("%lld",&a[i]);
17 for(int i=1;i<=m;i++)
18 scanf("%lld",&b[i]);
19 if(n==1)
20 {
21 for(int i=1;i<=m;i++)
22 printf("%lld ",a[1]+b[i]);
23 return 0;
24 }
25 sort(a+1,a+1+n);
26 LL ans=a[2]-a[1];
27 for(int i=2;i<=n;i++)
28 ans=gcd(ans,a[i]-a[i-1]);
29 printf("%lld\n",ans);
30 for(int i=1;i<=m;i++)
31 printf("%lld ",gcd(ans,a[1]+b[i]));
32 printf("\n");
33 //system("pause");
34 return 0;
35 }
Codeforces Round #691 (Div. 2)的更多相关文章
- Codeforces Round #691 (Div. 2) C. Row GCD (数学)
题意:给你两个数组\(a\)和\(b\),对于\(j=1,...,m\),找出\(a_1+b_j,...,a_n+b_j\)的\(gcd\). 题解:我们很容易的得出\(gcd\)的一个性质:\(gc ...
- Codeforces Round #691 (Div. 2) 题解
A 不多说了吧,直接扫一遍求出 \(r_i>b_i\) 的个数和 \(r_i<b_i\) 的个数 B 稍微打个表找个规律就可以发现,当 \(n\) 为奇数的时候,答案为 \(\dfrac{ ...
- 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 ...
随机推荐
- 白话解读 WebRTC 音频 NetEQ 及优化实践
NetEQ 是 WebRTC 音视频核心技术之一,对于提高 VoIP 质量有明显的效果,本文将从更为宏观的视角,用通俗白话介绍 WebRTC 中音频 NetEQ 的相关概念背景和框架原理,以及相关的优 ...
- Python基础之异常定义
技术背景 在各类python的项目中,总会涉及到项目自身相关的一些约束条件.这些约束条件体现在,当用户输入的参数或者文件不符合项目要求时,就拒绝这个参数的输入并且播报出来,提醒用户自行修改,而这一过程 ...
- thinkphp 5.1框架利用及rce分析
前言 上个学期钻研web渗透的时候接触过几个tp的框架,但那时候还没有写blog的习惯,也没有记录下来,昨天在做ctf的时候正好碰到了一个tp的框架,想起来就复现一下 正文 进入网站,标准笑脸,老tp ...
- DDOS攻击与防御简单阐述,列出DDOS的攻击方法和防御方法
参考1:https://www.hi-linux.com/posts/50873.html#%E7%BD%91%E7%BB%9C%E5%B1%82-ddos-%E6%94%BB%E5%87%BB 什么 ...
- SparkStreaming使用mapWithState时,设置timeout()无法生效问题解决方案
前言 当我在测试SparkStreaming的状态操作mapWithState算子时,当我们设置timeout(3s)的时候,3s过后数据还是不会过期,不对此key进行操作,等到30s左右才会清除过期 ...
- 201871030125-王芬 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
实验三 软件工程结对项目 项目 内容 课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/2018CST 这个作业要求链接 https://www.cnblogs ...
- 201871030102_崔红梅 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 班级博客 这个作业要求链接 作业要求 我的课程学习目标 1.体验软件项目开发中的两人合作,练习结对编程2. 掌握Github协作开发程序的操作方法.3.阅读<现代软 ...
- OOUnit4Summary
一.前三次作业的架构设计 前言 第四单元以uml建模语言为背景,让我们通过已有的模型架构,设计实现类图(顺序图,状态图)解析器:在理解uml整体架构体系的基础上,读懂并熟练运用官方的给的代码,设计有层 ...
- BUAA_2021_SE_Case_Analysis
案例分析作业 项目 内容 这个作业属于哪个课程 2021春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 案例分析作业 我在这个课程的目标是 通过课程学习,完成第一个可以称之为"软 ...
- xctf - forgot
xctf - forgot check一下,开启了NX 拉入ida中,能找到: __isoc99_scanf,能够无限输入, 循环中,读取32个scanf的字符并进行判断,最后根据结果调用存在栈上的函 ...