当前位置: 首页 > news >正文

Codeforces Round 908 (Div. 2)题解

目录

A. Secret Sport

题目分析:

B. Two Out of Three

题目分析: 

C. Anonymous Informant

 题目分析:


A. Secret Sport

题目分析:

A,B一共打n场比赛,输入一个字符串由'A'和‘B’组成代表A赢或者B赢(无平局),因为题目说明这个人记得一定打了n场比赛,所以也就是n场比赛结束,题目说明,一旦分出胜负,比赛当场结束,那么一整场比赛的结束一定是分出了胜者,所以一定是字符串的最后一个,也没有所谓的'?'(平局)的情况出现

#include<bits/stdc++.h>
#pragma GCC optimize("Ofast")
#define INF 0x3f3f3f3f
#define IOS ios::sync_with_stdio(false);cin.tie(0);
#define int long long
#define pb push_back
#define vct vector
#define checkbit __builtin_popcount
#define gcd __gcd
#define use int T;cin>>T;while(T--)
#define LEN length()
#define all(a) a.begin(),a.end()
template<class T> bool mmax(T &u, T v) { return u < v ? (u = v, 1) : 0; }
template<class T> bool mmin(T &u, T v) { return u > v ? (u = v, 1) : 0; }
#define lowbit(x) (x&(-x))
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endl
using namespace std;
typedef pair<int,int>pii;
const int N =1e5+7;
signed main()
{IOS
use{int n;cin>>n;string a;cin>>a;cout<<a.back()<<endl;}
return 0;
}

B. Two Out of Three

题目分析: 

给定一个数组a,让创造出一个等长数组并且满足题目条件:ai=aj时,那三条,不过一整个b数组里面只能出现三种之中的两种,如果出现三种或者一种结果是不对的。

对于a数组,必须有重复的数才行,否则连前提条件ai=aj都满足不了,也就是0种。

对于重复数:

  1. 出现两次的数,那么我们让第一个数为1,第二个数为2只能 满足出现1种的情况,所以必须要有至少两组的出现两次的数例如样例3:1 1 2 2.
  2. 对于出现两次以上的数,比如出现了3次,我们较为想当然的让它们为1 , 2 ,3,结果发现这样写三种全有,那么对于这种我们只能让它出现三种其中的一种,也就是与第一种情况相同,换句话说:对于出现两次的数,和出现两次以上的数是一种做法 .
#include<bits/stdc++.h>
#pragma GCC optimize("Ofast")
#define INF 0x3f3f3f3f
#define IOS ios::sync_with_stdio(false);cin.tie(0);
#define int long long
#define pb push_back
#define vct vector
#define checkbit __builtin_popcount
#define gcd __gcd
#define use int T;cin>>T;while(T--)
#define LEN length()
#define all(a) a.begin(),a.end()
template<class T> bool mmax(T &u, T v) { return u < v ? (u = v, 1) : 0; }
template<class T> bool mmin(T &u, T v) { return u > v ? (u = v, 1) : 0; }
#define lowbit(x) (x&(-x))
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endl
using namespace std;
typedef pair<int,int>pii;
const int N =1e5+7;
signed main()
{IOS
use{int n;cin>>n;vct<int>a(n+1);int cnt[101]={};for(int i=1;i<=n;i++){cin>>a[i];cnt[a[i]]++;}int x2=0;for(int i=1;i<=100;i++){if(cnt[i]>=2)x2++;}if(x2<2)cout<<"-1"<<endl;else{vct<bool>st(101,1);int cntx=1;for(int i=1;i<=n;i++){if(cnt[a[i]]>=2&&st[a[i]]&&cntx&&cntx<3){cout<<cntx+1<<" ";st[a[i]]=0;cntx++;}else cout<<"1 ";}cout<<endl;}
}return 0;
}

C. Anonymous Informant

 题目分析:

给一个数组b,有人说这是由一个数组a进行如下操作得到的:

  1. 取一个x满足a_x=x
  2. 将a数组向左移x格

 让判断真假。

对于第x位置的a_x向左移动x格,就变成了末尾,也就是a_n,那么既然b是由a数组得来的,我们可以逆推出:每次操作向右移动b_n格,最终得到数组a,因为数组a不是确定的,所以我们需要判断在逆推回a数组的时候是否会出现不可行的情况,因为正推的条件是a_x=x,故逆推的条件是b_n \le n,如果不满足逆推条件也就是不可行情况,结果为假。

对于操作次数k,(1 \le k \le 10^9),故我们考虑去除多余重复的操作,也就是取min(n,k)次操作即可.

#include<bits/stdc++.h>
#pragma GCC optimize("Ofast")
#define INF 0x3f3f3f3f
#define IOS ios::sync_with_stdio(false);cin.tie(0);
#define int long long
#define pb push_back
#define vct vector
#define checkbit __builtin_popcount
#define gcd __gcd
#define use int T;cin>>T;while(T--)
#define LEN length()
#define all(a) a.begin(),a.end()
template<class T> bool mmax(T &u, T v) { return u < v ? (u = v, 1) : 0; }
template<class T> bool mmin(T &u, T v) { return u > v ? (u = v, 1) : 0; }
#define lowbit(x) (x&(-x))
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endl
using namespace std;
typedef pair<int,int>pii;
const int N =1e5+7;
signed main()
{IOS
use{int n,k;cin>>n>>k;vct<int>a(n+1);int mas=min(n,k);for(int i=1;i<=n;i++){cin>>a[i];}int x=n;bool isok=1;while(mas--){if(a[x]>n){isok=0;break;}x=(x+n-a[x])%n;}if(isok)cout<<"Yes"<<endl;else cout<<"No"<<endl;
}return 0;
}

http://www.lryc.cn/news/223207.html

相关文章:

  • Redis笔记 Redis主从同步
  • 数据结构-Prim算法构造无向图的最小生成树
  • MFC串口通信(SerialPort)
  • Vim基本使用操作
  • 【深蓝学院】手写VIO第8章--相机与IMU时间戳同步--作业
  • Naocs配置中心配置映射List、Map、Map嵌套List等方式
  • 如何通过CRM系统进行销售机会管理?
  • 解决idea启动tomcat控制台中文乱码
  • vscode + cmake + opencv example
  • day57【动态规划】647.回文子串 516.最长回文子序列
  • 分享vmware和Oracle VM VirtualBox虚拟机的区别,简述哪一个更适合我?
  • YOLOV5模型运行
  • @Autowired和@Resource注解的区别和联系
  • 设计模式类型
  • Android修行手册-实现利用POI将图片插入到Excel中(文末送书)
  • 低功耗工业RFID设备应用
  • # Oracle 库常见问题排查
  • 矩阵乘积的迹对矩阵求导
  • IP 地址冲突检测工具
  • js树形数组遍历练习,扁平化、格式化、获取节点父级
  • c语言贪吃蛇项目的实现
  • IDEA运行前端vue项目,安装nodejs,以及配置
  • SAP S4后的一些注意点(一)(更新中)
  • Python高级语法----深入asyncio:构建异步应用
  • 5-爬虫-打码平台、打码平台自动登录打码平台、selenium爬取京东商品信息、scrapy介绍安装、scrapy目录结构
  • HTTPS 的工作原理是什么?
  • 【STM32】TIM2的PWM:脉冲宽度调制
  • DRF 学习
  • 2023年双11有哪些便宜的云服务器值得推荐?
  • [Java/力扣160]相交链表