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 ...
随机推荐
- python类属性
类属性 类属性分为共有属性和私有属性. 私有属性的定义方法eg:__age(若无次定义则默认为公有属性) 类属性举例: class people: name = "china" _ ...
- P1036_选数(JAVA语言)
题目描述 已知 n 个整数x1,x2,-,xn,以及1个整数k(k<n).从n个整数中任选k个整数相加,可分别得到一系列的和.例如当n=4,k=3,4个整数分别为3,7,12,19时,可得 ...
- go-ini入门教程
go-ini入门教程 go-ini简介 Package ini provides INI file read and write functionality in Go. 在实际开发时,配置信息一般不 ...
- Elasticsearch 分页查询
目录 前言 from + size search after scroll api 总结 参考资料 前言 我们在实际工作中,有很多分页的需求,商品分页.订单分页等,在MySQL中我们可以使用limit ...
- 翻译:《实用的Python编程》07_05_Decorated_methods
目录 | 上一节 (7.4 装饰器) | 下一节 (8 测试和调试) 7.5 装饰方法 本节讨论一些与方法定义结合使用的内置装饰器. 预定义的装饰器 在类定义中,有许多预定义的装饰器用于指定特殊类型的 ...
- keepalived安装及组合nginx配置负载实现高可用
目录 1. Keepalived安装配置 1.1 官网下载tar包 1.2 上传到指定目录安装 1.3 配置文件 1.4 配置nginx检测脚本文件 1.5 keepalived 启动/重启/停止/查 ...
- django-自定义用户登录(个人笔记)
django自定义用户登录(个人笔记) 函数说明 1. render()函数:对用户请求做出响应 2. path()函数:定义路由 3. create()函数:增加数据表记录 配置settings.p ...
- 解决WebStorm无法正确识别Vue3组合式API的问题
1 问题描述 Vue3的组合式API无法在WebStorm中正确识别,表现为defineComponent等无法被识别: 2 尝试方案 猜想这种问题的原因是无法正确识别对应的Vue3库,笔者相信Web ...
- kubernetes 的负载均衡策略
Kubernetes提供了两种负载分发策略: RoundRobin和SessionAffinity ◎ RoundRobin:轮询模式,即轮询将请求转发到后端的各个Pod上. ◎ SessionAff ...
- Vue.js小案例、生命周期函数及axios的使用
一.调色框小案例: 随着三个滑动框的变化,颜色框的颜色随之改变 1.1.实例代码 <!DOCTYPE html> <html lang="en" xmlns:v- ...