【7.24校内交流赛】T1&T2
T1:

一个脑洞很大的题,将输入的所有数异或起来输出就好了;
(话说我为什么这么喜欢用异或啊)
#include<bits/stdc++.h>
using namespace std;
inline int read(){
int ans=;
char last=' ',ch=getchar();
while(ch>''||ch<'') last=ch,ch=getchar();
while(ch>=''&&ch<='') ans=(ans<<)+(ans<<)+ch-'',ch=getchar();
if(last=='-') ans=-ans;
return ans;
}
int n,c;
int ans;
int main(){
n=read();
for(int i=;i<=n;i++){
c=read();
ans^=c;
}
printf("%d",ans);
return ;
}
T2:

结论题:当某个字符串长度恰巧为3^k+1时,从它往下的第3^k+1行恰好只决定于这个字符串的左右两个端点的值;
#include<bits/stdc++.h>
using namespace std;
inline int read() {
int ans=;
char last=' ',ch=getchar();
while(ch>''||ch<'') last=ch,ch=getchar();
while(ch>=''&&ch<='') ans=(ans<<)+(ans<<)+ch-'',ch=getchar();
if(last=='-') ans=-ans;
return ans;
}
int n,l;
char a[];
int three[]= {,,,,,,,,,,,,,,};
int main() {
n=read();
scanf("%s",a+);
int len=strlen(a+);
while(len>) {
for(int i=; i>=; i--) if(three[i]<=len) {
l=three[i];
break;
}
for(int i=; i<=len-l+; i++) {
if(a[i]==a[i+l-]) continue;
if(a[i]=='B'&&a[i+l-]=='G') {
a[i]='R';
continue;
}
if(a[i]=='B'&&a[i+l-]=='R') {
a[i]='G';
continue;
}
if(a[i]=='G'&&a[i+l-]=='B') {
a[i]='R';
continue;
}
if(a[i]=='G'&&a[i+l-]=='R') {
a[i]='B';
continue;
}
if(a[i]=='R'&&a[i+l-]=='B') {
a[i]='G';
continue;
}
if(a[i]=='R'&&a[i+l-]=='G') {
a[i]='B';
continue;
}
}
len=len-l+;
}
printf("%c",a[]);
}
然后还有一个暴力骗分的方法,只能得到30pts,但在找不出规律时也不失为一种策略(当然tle的部分你可以随便输出‘R’,‘G’,‘B’中的任意一个,应该也可以骗到不少分);
#include<bits/stdc++.h>
using namespace std;
inline int read() {
int ans=;
char last=' ',ch=getchar();
while(ch>''||ch<'') last=ch,ch=getchar();
while(ch>=''&&ch<='') ans=(ans<<)+(ans<<)+ch-'',ch=getchar();
if(last=='-') ans=-ans;
return ans;
}
int n;
char a[];
int main() {
n=read();
scanf("%s",a+);
int len=strlen(a+);
while(len>) {
for(int i=; i<=len-; i++) {
if(a[i]==a[i+]) continue;
if(a[i]=='B'&&a[i+]=='G') {
a[i]='R';
continue;
}
if(a[i]=='B'&&a[i+]=='R') {
a[i]='G';
continue;
}
if(a[i]=='G'&&a[i+]=='B') {
a[i]='R';
continue;
}
if(a[i]=='G'&&a[i+]=='R') {
a[i]='B';
continue;
}
if(a[i]=='R'&&a[i+]=='B') {
a[i]='G';
continue;
}
if(a[i]=='R'&&a[i+]=='G') {
a[i]='B';
continue;
}
}
len-=;
}
if(len==) {
if(a[]==a[]) printf("%c",a[]);
if(a[]=='B'&&a[]=='G') printf("R");
if(a[]=='B'&&a[]=='R') printf("G");
if(a[]=='G'&&a[]=='B') printf("R");
if(a[]=='G'&&a[]=='R') printf("B");
if(a[]=='R'&&a[]=='B') printf("G");
if(a[]=='R'&&a[]=='G') printf("B");
return ;
}
while(len) {
for(int i=; i<=len-; i++) {
if(a[i]==a[i+]) continue;
if(a[i]=='B'&&a[i+]=='G') {
a[i]='R';
continue;
}
if(a[i]=='B'&&a[i+]=='R') {
a[i]='G';
continue;
}
if(a[i]=='G'&&a[i+]=='B') {
a[i]='R';
continue;
}
if(a[i]=='G'&&a[i+]=='R') {
a[i]='B';
continue;
}
if(a[i]=='R'&&a[i+]=='B') {
a[i]='G';
continue;
}
if(a[i]=='R'&&a[i+]=='G') {
a[i]='B';
continue;
}
}
len--;
}
printf("%c",a[]);
return ;
}
暴力 Code
【7.24校内交流赛】T1&T2的更多相关文章
- 【7.24校内交流赛】T3【qbxt】复读警告
数据范围:N,key<=1000; 首先看题目背景,显然不是DP就是图论,但是这显然不是个图论,因此这就是个DP: 接下来考虑怎么DP 我们定义dp[i][j]表示现在dp到了第i个数,当前i个 ...
- [3.24校内训练赛by hzwer]
来自FallDream的博客,未经允许,请勿转载,谢谢. ----------------------------------------------------------------------- ...
- 2018.10.17校内模拟赛:T2神光
题面:pdf 首先排序,二分,然后怎么判定是否可行. 最简单的思路是,dp[i][j][k],到第i个,用了j次红光,k次绿光,前i个点都选上了,是否可行.然后转移就行. 然后考试的时候就想到这了,往 ...
- 【6.24校内test】T1 江城唱晚
[题目背景] 墙角那株海棠,是你种下的思念. 生死不能忘,高烛照容颜. 一曲江城唱晚,重忆当年坐灯前, 青衫中绣着你留下的线. ——银临<江城唱晚> [问题描述] 扶苏是个喜欢一边听古风歌 ...
- 【2019.7.24 NOIP模拟赛 T1】道路建设(road)(水题)
原题与此题 原题是一道神仙不可做题,两者区别在于,原题不能有重边和自环. 然而,这题可以有重边... 于是这题就变成了一道大水题. 此题的解法 考虑如何构造. 对于\(n\le10^4\)的情况: 对 ...
- Action<T1, T2>委托
封装包含两个参数的方法委托,没有返回值. 语法 public delegate void Action<in T1, in T2>( T1 arg1, T2 arg2 ) 类型参数 in ...
- 青岛理工大学第五届ACM交流赛 部分题解
A:后缀维护si*pi的最小值,查询的时候二分,判断后缀和当前两个部分就行. #include <bits/stdc++.h> using namespace std; typedef l ...
- DateTime.Compare(t1,t2)比較两个日期大小
DateTime.Compare(t1,t2)比較两个日期大小,排前面的小,排在后面的大,比方:2011-2-1就小于2012-3-2返回值小于零: t1 小于 t2. 返回值等于零 : t1 等于 ...
- 使用Func<T1, T2, TResult>
使用Func<T1, T2, TResult> 委托返回匿名对象 Func<T1, T2, TResult> 委托 封装一个具有两个参数并返回 TResult 参数指定的类 ...
随机推荐
- mongodb导出导入实例记录
mongodb导出导入实例记录 平时很用mongodb,所以用到了,就需要去网上搜索方法,干脆将自己的实际经历记录下来,方便日后使用. # 大致需求 源库:db_name_mongo 源IP:192. ...
- encode()和decode()两个函数
编码可以将抽象字符以二进制数据的形式表示,有很多编码方法,如utf-8.gbk等,可以使用encode()函数对字符串进行编码,转换成二进制字节数据,也可用decode()函数将字节解码成字符串:用d ...
- Sublime text3配置C/C++编译环境
安装sublime text3后,一直很喜欢使用它看代码(这个高亮配色真的很好看).它默认的运行环境就有C/C++,在写了一个hello world!后正常输出,但在加入scanf()输入后就不行了. ...
- 多线程--future模式初体验
第一次使用多线程,虽然理解的不是很透彻,但是也值得记录下.用的是future模式. 创建个线程池:private ExecutorService cachedThreadPool = Executor ...
- docker-compose进行部署容器的时候,报错权限不足
刚刚用docker-compose部署elk的时候,没有起来,查看日志的时候,发现在数据卷挂载的时候,报错权限不足. 由于日志不在了,这里就直接贴出解决办法. 问题原因及解决办法 原因是CentOS7 ...
- cmake尝试检测GCC版本报错
本人尝试编译指定commit版本的MRPT库,报错如下, CMake Error at cmakemodules/script_detect_gcc.cmake: (LIST): list GET g ...
- 四、IDEA创建SpringBoot项目
1.从官网下载之后直接导入IDEA: 下载完成解压之后如下图: IDEA导入该项目: 之后一路next即可 导入成功之后你可能会发现左下角一直有个进度条在进行,傻傻的同学可能以为是在下载jar包,下个 ...
- 搭建第一个netty程序
来自action In netty 自己修改一点点 主要依赖 <dependencies> <dependency> <groupId>io.netty</g ...
- Ubuntu C/C++的编译环境
Ubuntu缺省情况下,并没有提供C/C++的编译环境,因此还需要手动安装.但是如果单独安装gcc以及g++比较麻烦,幸运的是,Ubuntu提供了一个build-essential软件包.查看该软件包 ...
- Mysql的caching_sha2_password的坑
概述 今天我用homebrew安装Mysql8.0,安装完成之后,用Workbench和Sequel Pro连接数据库都失败了,并且都报caching_sha2_password相关的错误,经过查资料 ...