Atcoder Beginner Contest 166
VP赛况如下:

前言:感觉这一场题目难度还是比较贴近新生的,我一个codeforces小蓝名一小时居然AK了,F题数据有点水(?)暴力dfs居然都能过...
A:A?C
题意:给你字符串,如果字符串是ABC,那么就输出ARC;反之输出ABC。
#include<bits/stdc++.h>
using namespace std;
int main(){
string a;cin>>a;
if(a[]=='R') cout<<"ABC"<<endl;
if(a[]=='B') cout<<"ARC"<<endl;
}
B:Trick or Treat
题意:给你n个数,k个组,每组有d个数,然后输入d个数,标记,最后查找有[1,n]中有几个数字没被访问过
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+;
bool vis[maxn];
int main(){
int n,k;cin>>n>>k;
for(int i=;i<=k;i++){
int x;cin>>x;
for(int j=;j<=x;j++){
int q;cin>>q;
vis[q]=true;
}
}
int cnt=;
for(int i=;i<=n;i++){
if(!vis[i]) ++cnt;
}
cout<<cnt<<endl;
}
C:Peaks
题意:有N个观测台,M条边,每个人有一个高度H,输出有多少个节点满足它比所有它相邻的观测台高。
解法:我习惯用链式前向星来存边,思路就是查找每个节点的边,看是否>=他,如果是的话,那就不行了,否则ans++;
#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,n,a) for(int i=n;i>=a;i--)
#define endl '\n'
#define mem(a,b) memset(a,b,sizeof(a))
#define IO ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
const int INF=0x3f3f3f3f;
const ll inf=0x3f3f3f3f3f3f3f3f;
const int mod=1e9+;
const int maxn=1e5+;
int h[maxn];
int tot,head[maxn];
struct E{
int to,next;
}edge[maxn<<];
void add(int u,int v){
edge[tot].to=v;
edge[tot].next=head[u];
head[u]=tot++;
}
int main(){
int n,m;cin>>n>>m;mem(head,-);
for(int i=;i<=n;i++) cin>>h[i];
for(int i=;i<=m;i++){
int u,v;cin>>u>>v;
add(u,v);add(v,u);
}
int ans=;
for(int u=;u<=n;u++){
int flag=;
for(int i=head[u];i!=-;i=edge[i].next){
int v=edge[i].to;
if(h[v]>=h[u]){
flag=;break;
}
}
if(!flag) ++ans;
}
cout<<ans<<endl;
}
D:I hate Factorization
题意:给定X,输出一组(A,B),满足A5-B5=X.
解法:看了一下数据范围,直接枚举暴力就行(写wa四次,一个小地方没开LL,好菜啊.....逃)
#include<bits/stdc++.h>
#define ll long long
using namespace std;
int main(){
ll x;cin>>x;
for(ll i=-;i<=;i++){
for(ll j=-;j<=;j++){
ll a=i*i*i*i*i;ll b=j*j*j*j*j;
if(x==(a-b)){
cout<<i<<" "<<j<<endl;
return ;
}
}
}
}
E:This Message Will Self-Destruct in 5s
题意:给一个长度为N的序列A,求有多少数字对(i,j)满足Ai+Aj=|i - j|。
思路:我不太会数论..想了一会才明白。原式等价于:Aj + j = i - Ai,那么只需要每次查询 i - Ai的个数,然后更新Ai + i即可。
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=2e5+;
int a[maxn];
int main(){
int n;cin>>n;
map<int,int> mp;ll ans=;
for(int i=;i<=n;i++){
int x;cin>>x;
ans+=mp[i-x];
mp[i+x]++;
}
cout<<ans<<endl;
}
F: Three Variables Game
题意:给N个字符串("AB","AC","BC")和A,B,C三个值,按顺序执行每个字符串的操作,如果这个字符串是"AB",那么将执行A--,B++或A++,B--,其它字符串类似,并且每一个操作之后A,B,C三个值不能小于0,判断是否按顺序执行下来,如是,并要求具体操作序列。
解法:看到这个题,第一反应就是dfs,配套剪枝就行(本来想想先莽一发dfs,但没想到过了,Exe_time也只有33ms,怀疑数据有点水?)
#include<bits/stdc++.h>
#define ll long long
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,n,a) for(int i=n;i>=a;i--)
#define endl '\n'
#define mem(a,b) memset(a,b,sizeof(a))
#define IO ios::sync_with_stdio(false);cin.tie(0);
using namespace std;
const int INF=0x3f3f3f3f;
const ll inf=0x3f3f3f3f3f3f3f3f;
const int mod=1e9+;
const int maxn=1e5+;
int n,a,b,c;
string s[maxn];
vector<char> vec;
int flag;
void dfs(int x,int a,int b,int c){
if(flag) return ;
if(x==n+&&a>=&&b>=&&c>=){
flag=;
puts("Yes");
for(int i=;i<n;i++) cout<<vec[i]<<endl;
return ;
}
if(s[x][]=='A'&&s[x][]=='B'){
if(a+>=&&b->=&&c>=){
vec.push_back('A');
dfs(x+,a+,b-,c);
vec.pop_back();
}
if(a->=&&b+>=&&c>=){
vec.push_back('B');
dfs(x+,a-,b+,c);
vec.pop_back();
}
}
else if(s[x][]=='A'&&s[x][]=='C'){
if(a+>=&&b>=&&c->=){
vec.push_back('A');
dfs(x+,a+,b,c-);
vec.pop_back();
}
if(a->=&&b>=&&c+>=){
vec.push_back('C');
dfs(x+,a-,b,c+);
vec.pop_back();
}
}
else if(s[x][]=='B'&&s[x][]=='C'){
if(a>=&&b->=&&c+>=){
vec.push_back('C');
dfs(x+,a,b-,c+);
vec.pop_back();
}
if(a>=&&b+>=&&c->=){
vec.push_back('B');
dfs(x+,a,b+,c-);
vec.pop_back();
}
}
}
int main(){
cin>>n>>a>>b>>c;flag=;
for(int i=;i<=n;i++) cin>>s[i];
dfs(,a,b,c);
if(!flag) puts("No");
}
Atcoder Beginner Contest 166的更多相关文章
- AtCoder Beginner Contest 100 2018/06/16
A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...
- AtCoder Beginner Contest 052
没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...
- AtCoder Beginner Contest 053 ABCD题
A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...
- AtCoder Beginner Contest 136
AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...
- AtCoder Beginner Contest 137 F
AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...
- AtCoder Beginner Contest 076
A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...
- AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】
AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...
- AtCoder Beginner Contest 064 D - Insertion
AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...
- AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle【暴力】
AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...
随机推荐
- SpringBoot word 转换为 pdf
转换文件 swagger 地址, 基于 SpringBoot 开发 http://119.27.167.41:8888/convertor/swagger-ui.html 带有图片的word 转换体验 ...
- Ansible Facts 变量详解
Ansible Facts 变量详解与使用案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: 3. ...
- udp协议与tcp协议
TCP协议与UDP协议支持的应用协议 TCP支持的应用协议主要有:Telnet.FTP.SMTP等: UDP支持的应用层协议主要有:NFS(网络文件系统).SNMP(简单网络管理协议).DNS(主域名 ...
- VIM 批量缩进4个空格
vim /etc/vimrc 或 vim ~/.vimrc set smartindent set shiftwidth= 按v选中多行,回车 然后shifit + >
- Xtrabackup全量 增量备份详解
xtrabackup是Percona公司CTO Vadim参与开发的一款基于InnoDB的在线热备工具,具有开源,免费,支持在线热备,备份恢复速度快,占用磁盘空间小等特点,并且支持不同情况下的多种备份 ...
- 【React踩坑记五】React项目中引入并使用react-ace代码编辑插件(自定义列表提示)
最近有一个引入sql编辑器插件的需求,要求代码高亮显示,代码智能提示,以及支持自定义代码提示列表等功能.中途在自定义代码提示列表中由于没有相关demo,所以踩了一些坑,遂将其整理如下,以便日后查看. ...
- CloudCC CRM探讨:精细流程管理与员工悟性培养
很多企业主招聘时更喜欢专业的销售,来给他们创造价值.老板不愿意花时间在"磨刀上",而喜欢员工一来就"砍柴".即使是建立培训机制,仍然很大程度依赖于员工自己的悟性 ...
- RHEL6 搭建 keepalived + lvs/DR 集群
搭建 keepalived + lvs/DR 集群 使用Keepalived为LVS调度器提供高可用功能,防止调度器单点故障,为用户提供Web服务: LVS1调度器真实IP地址为192.168.4. ...
- P1457 城堡 The Castle 位运算+BFS+思维(难题,好题)
题目描述 我们憨厚的USACO主人公农夫约翰(Farmer John)以无法想象的运气,在他生日那天收到了一份特别的礼物:一张"幸运爱尔兰"(一种彩票).结果这张彩票让他获得了这次 ...
- 「从零单排HBase 09」Hbase的那些数据结构和算法
在之前学习MySQL的时候,我们知道存储引擎常用的索引结构有B+树索引和哈希索引. 而对HBase的学习,也离不开索引结构的学习,它使用了一种LSM树((Log-Structured Merge-Tr ...