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)的更多相关文章

  1. Codeforces Round #691 (Div. 2) C. Row GCD (数学)

    题意:给你两个数组\(a\)和\(b\),对于\(j=1,...,m\),找出\(a_1+b_j,...,a_n+b_j\)的\(gcd\). 题解:我们很容易的得出\(gcd\)的一个性质:\(gc ...

  2. Codeforces Round #691 (Div. 2) 题解

    A 不多说了吧,直接扫一遍求出 \(r_i>b_i\) 的个数和 \(r_i<b_i\) 的个数 B 稍微打个表找个规律就可以发现,当 \(n\) 为奇数的时候,答案为 \(\dfrac{ ...

  3. 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 ...

  4. Codeforces Round #354 (Div. 2) ABCD

    Codeforces Round #354 (Div. 2) Problems     # Name     A Nicholas and Permutation standard input/out ...

  5. Codeforces Round #368 (Div. 2)

    直达–>Codeforces Round #368 (Div. 2) A Brain’s Photos 给你一个NxM的矩阵,一个字母代表一种颜色,如果有”C”,”M”,”Y”三种中任意一种就输 ...

  6. cf之路,1,Codeforces Round #345 (Div. 2)

     cf之路,1,Codeforces Round #345 (Div. 2) ps:昨天第一次参加cf比赛,比赛之前为了熟悉下cf比赛题目的难度.所以做了round#345连试试水的深浅.....   ...

  7. Codeforces Round #279 (Div. 2) ABCDE

    Codeforces Round #279 (Div. 2) 做得我都变绿了! Problems     # Name     A Team Olympiad standard input/outpu ...

  8. 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 ...

  9. 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 ...

随机推荐

  1. 一招教你写博客,Typora+PicGo+阿里云oss,最好用的Markdown+最好用的图床工具!

    博客 写博客的好处 1.使自己变得更善于观察.一旦你养成了记博客的习惯,与此同时你也赋予了一个更好的机会给自己,让自己去更细致地观察生活.一个人的生活经历本就是价值连城的,从中学习到的知识,教训更是异 ...

  2. 【PAT甲级】1119 Pre- and Post-order Traversals(前序后序转中序)

    [题目链接] [题意] 根据二叉树的前序和后序序列,如果中序序列唯一,输出Yes,如果不唯一输出No,并输出这个中序序列. [题解] 众所周知,二叉树是不能够根据前序和中序建立的,为什么呢?首先需要明 ...

  3. CobaltStrike 和 Metasploit 联动

    出品|MS08067实验室(www.ms08067.com) 本文作者:掉到鱼缸里的猫(Ms08067内网安全小组成员) 个人觉得CobaltStrike图形化的界面和丰富的功能,是一个超强的后渗透框 ...

  4. 攻防世界 reverse xx

    xx 程序开始验证输入长度为19位. 取前4位(作为后面加密的key),验证这4位都在'qwertyuiopasdfghjklzxcvbnm1234567890'中. 将key用0填充为16位 调用x ...

  5. gstreamer常用命令

    由于有好一段时间没做GStreamer相关项目了,早前的一些记录需要做下记录,以待需要的时候查阅. 还是分几个小节来介绍吧,这样思路清晰一点.(格式有点乱,没时间整理,读者自行脑补) 1. 播放视频. ...

  6. 从I/O多路复用到Netty,还要跨过Java NIO包

    本文是Netty系列第4篇 上一篇文章我们深入了解了I/O多路复用的三种实现形式,select/poll/epoll. 那Netty是使用哪种实现的I/O多路复用呢?这个问题,得从Java NIO包说 ...

  7. Java例题_26 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母。

    1 /*26 [程序 26 求星期] 2 题目:请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续 判断第二个字母. 3 程序分析:用情况语句比较好,如果第一个字母一样,则判断用情 ...

  8. JMeter元件作用域实践指南

    从一个问题说起 对于以下测试脚本: 为了能调用进入房间接口,需要从考场接口获取考场token.为了调用考场接口,需要从登陆接口获取登陆token.元件说明如下: 学生登录,提取登录${token}传入 ...

  9. Recoil 的使用

    通过简单的计数器应用来展示其使用.先来看没有 Recoil 时如何实现. 首先创建示例项目 $ yarn create react-app recoil-app --template typescri ...

  10. maven中心仓库OSSRH使用简介

    目录 简介 为什么使用中心仓库 发布到中心仓库前的准备工作 使用OSSRH 使用Sonatype创建ticket 中央仓库中的组件要求 提供Javadoc 和源代码 使用GPG/PGP给文件签名 Me ...