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 ...
随机推荐
- Srping源码之XMLBeanFactory
本文是针对Srping的XMLBeanFactory来进行解析xml并将解析后的信息使用GenericBeanDefinition作为载体进行注册,xmlBeanFactory已经在Spring ...
- 【linux】驱动-7-平台设备驱动
目录 前言 7. 平台设备驱动 7.1 平台总线 7.1.1 平台总线注册和匹配方式 7.1.2 源码分析 7.2 平台设备 7.2.1 platform_device 7.2.2 设备信息 7.2. ...
- Kubernetes,kubectl常用命令详解
kubectl概述 祭出一张图,转载至 kubernetes-handbook/kubectl命令概述 ,可以对命令族有个整体的概念. 环境准备 允许master节点部署pod,使用命令如下: kub ...
- elasticsearch 7.7 配置文件:elasticsearch.yml
# ======================== Elasticsearch Configuration ========================= # # NOTE: Elasticse ...
- Ansible-Playbook中的变量使用
变量名:仅能由字母.数字和下划线组成,且只能以字母开头 变量来源: 1.ansible all -m setup 远程主机的所有变量都可直接调用 #显示所有变量 ansible all -m setu ...
- 那些你可能不知道的 ZooKeeper 知识
本文作者:HelloGitHub-老荀 Hi,这里是 HelloGitHub 推出的 HelloZooKeeper 系列,免费开源.有趣.入门级的 ZooKeeper 教程,面向有编程基础的新手. 项 ...
- BUAA_OO_第一单元
BUAA_OO_2020_UNIT1 一.程序结构分析 第一次作业 UML & Mertrics 由于数据处理简单,第一次作业中笔者发挥了面向过程的思想,将项转换成Biginteger, ...
- MyBatis笔记(七)
1. 简介 什么是缓存? 存在内存中的临时数据 将用户经常查询的数据存放在缓存(内存)中,用户取查询就不用从磁盘上(关系型数据库数据文件)查询,从缓存中查询,从而提高查询效率,解决了高并发系统的性能问 ...
- [开源]制作docker镜像不依赖linux和Docker环境
背景 最近群友们经常反馈docker镜像制作起来有点麻烦,我开源的antdeploy工具虽然可以制作镜像但是必须有一个提前:有一台安装好docker的linux服务器.因为大家开发环境基本上都是win ...
- SpringBoot+Dubbo+Zookeeper 实例
前言 当下Java 生态环境里面,微服务占据了非常大的份额,现在大部分新开发的 Java选型的后台程序都很奇妙的会跟微服务发生一些关系.那目前市面上主流的微服务方向主要有 Spring 家族推出的Sp ...