codeforces 589 div2 ABC
时间:2019-11-03
本文章向大家介绍codeforces 589 div2 ABC,主要包括codeforces 589 div2 ABC使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
codeforces 589 div2
A:Good ol' Numbers Coloringhttp://codeforces.com/contest/1245/problem/A
观察样例发现大概是 $gcd(a,b) \neq 1$的时候是无限,试了下A了 面向样例编程
除了cf应该不能这么意识流编程 正赛的时候这一两分钟也没那么重要
B: Restricted RPS
中等复杂的模拟题,但我写的时候一直wa,换了三种策略都没成,后来在广神的帮助下找到了是输出字符数组没有加结束符导致每次多样例的输出就会多很多东西,这种神奇的bug我还真是第一次遇到,记录一下。
#include <bits/stdc++.h>
using namespace std;
char l[10001],out[10001];
int main(){
//freopen("test.in","r",stdin);
//freopen("test.out","w",stdout);
int t,a,b,c,n,ans;
cin>>t;
while(t--){
cin>>n;
cin>>a>>b>>c;
cin>>l;
for(int i=0;i<n;i++){
out[i]='0';
}
ans=0;
for(int i=0;i<n;i++){
if(l[i]=='R' && b>0){b--;ans++;out[i]='P';}
if(l[i]=='P' && c>0){c--;ans++;out[i]='S';}
if(l[i]=='S' && a>0){a--;ans++;out[i]='R';}
}
//cout<<out<<endl;
for(int i=0;i<n;i++){
if(out[i]=='0'){
if(l[i]=='R')
if(a>0){a--;out[i]='R';}
else {c--;out[i]='S';}
if(l[i]=='S')
if(c>0){c--;out[i]='S';}
else {b--;out[i]='P';}
if(l[i]=='P')
if(b>0){b--;out[i]='P';}
else {a--;out[i]='R';}
}
}
if(n%2==0 && ans>=(n/2)){
cout<<"YES"<<endl;
for(int i=0;i<n;i++)printf("%c",out[i]);
cout<<endl;
}
else if(n%2==1 && ans>(n/2)){
cout<<"YES"<<endl;
for(int i=0;i<n;i++)printf("%c",out[i]);
cout<<endl;
}
else cout<<"NO"<<endl;
}
return 0;
}
总结下就是算法没有问题但是wa得很靠前的时候,还是要注意下像输入输出啊预处理啊这种东西,想起来秦皇岛哪个暴力dp也是因为预处理的字符表有问题疯狂wa。
C Constanze's Machine
题意:
规则1:字符串中的m会被写成nn,w写成uu
输入为原字符串经过规则1转化而来的字符串,问原字符串有多少种可能。
思考:
1.若给定串中有m或w,则出错,ans=0
2.分块
将连续的(大于等于2个)的u/n连续子串分开,每个长度为 $l1,l2,l3...lm$ 容易发现对于每个子串,
ans[li]=ans[li-1]-ans[i-2];
斐波那契啊这是!那这下就解决了
#include<bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
long long fib[201111],pre[2000011];
char a[200011];
int main(){
fib[0]=1;fib[1]=1;
for(int i=2;i<100212;i++){fib[i]=(fib[i-1]+fib[i-2])%mod;}
cin>>a;
long long len=strlen(a),pos=0,num=0,ans=1;
for(int i=0;i<len;i++)if(a[i]=='w' || a[i]=='m'){cout<<'0'<<endl;return 0;}
while(pos<len){
if(a[pos]=='u' && a[pos+1]=='u'){
while(a[pos]=='u' && pos<len){
pos++;
pre[num]++;
}
num++;
}
else if(a[pos]=='n' && a[pos+1]=='n'){
while(a[pos]=='n' && pos<len){
pos++;
pre[num]++;
}
num++;
}
else pos++;
}
if(num==0){cout<<1<<endl;return 0;}
for(int i=0;i<num;i++)ans = (long long) ans * fib[ pre[i]] % mod;
cout<<ans<<endl;
return 0;
}
原文地址:https://www.cnblogs.com/dpsama/p/11787988.html
- 消费者驱动的微服务契约测试套件Spring Cloud Contract
- 使用Spring Boot开发一个Spring Mobile程序
- Spring Cloud中Hystrix 线程隔离导致ThreadLocal数据丢失
- 内网穿透工具-ittun
- Elastic-Job-Spring-Boot-Starter简化你的任务配置
- Spring Boot处理REST API错误的正确姿势
- C语言之位运算
- C语言之预处理命令与用typedef命名已有类型
- spring-data-mongodb之MongoTemplate 删除操作
- 总结了一些指针易出错的常见问题(六)
- spring-data-mongodb之MongoTemplate 修改数据
- spring-data-mongodb之MongoTemplate 添加数据
- Cannot create a session after the response has been committed
- spring-data-mongodb之环境准备(1)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python开发之numpy的使用
- flink sql实时计算当天pv写入mysql
- python爬取虎牙直播颜值区美女主播照片
- OpenCV图像处理笔记(三):霍夫变换、直方图、轮廓等综合应用
- 干货 | 高耦合场景下,Trip.com如何做支付设计与落地
- OpenCV图像处理笔记(二):图片操作进阶
- OpenCV图像处理笔记(一):图片基本操作
- BigData--Hadoop2.x新特性之HA
- 前端踩坑系列《四》
- BigData--Hadoop技术
- TensorFlow2.X学习笔记(8)--TensorFlow高阶API之构建模型、训练模型
- dotnet 使用 AsyncQueue 创建高性能内存生产者消费者队列
- TensorFlow2.X学习笔记(7)--TensorFlow中阶API之losses、metrics、optimizers、callbacks
- 前端须知的 Cookie 知识小结
- TensorFlow2.X学习笔记(6)--TensorFlow中阶API之特征列、激活函数、模型层