【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 参数指定的类 ...
随机推荐
- 【NOIP2016提高A组集训第1场10.29】完美标号
题目 给定M个二元组(A_i, B_i),求X_1, ..., X_N满足:对于任意(A_i, B_i),有|X_{A_i} - X_{B_i}| = 1成立. 分析 显然,对于二元组(x,y),X_ ...
- 17.树的子结构(python)
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) class Solution: def HasSubtree(self, pRoot1, pRoo ...
- docker-compose部署ELK(亲测)
具体的配置可以参考上面一篇:docker部署ELK 以下是做了一些修改的地方: kibana.yml [root@topcheer config]# cat kibana.yml server.hos ...
- shell基础操作
一.字符串 字符串是shell编程中最常用的数据类型,字符串可以用单引号,也可以用双引号,也可以不用引号. 单引号 name='xiaoxi' 单引号的限制: 单引号里的任何字符都会原样输出,单引号中 ...
- Ubuntu 12.04输入密码登陆后又跳回到登录界面
先找到这个文件: /home/user/.xsession-errors 打开这个文件. 这个文件记录了系统启动的日志,从这里你就可以看到启动的时候哪里出了问题. 对于我的来说,问题出在这里: & ...
- 添加tomcat为启动服务/删除tomcat服务
在很多生产把环境下,tomcat的启动要随着windows的启动一起启动,这个时候就需要将tomcat添加成服务.步骤如下: 1:环境配置 配置jdk环境变量: JAVA_HOME:jdk路径 配置p ...
- pycharm2019连接mysql错误08801 ------Connection to django1@localhost failed. [08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.
Error:Connection to django1@localhost failed. [08001] Could not create connection to database server ...
- was安装相关步骤(Linux)
本次试验目的主要对websphere 二次内部解剖对中间件性能优化垫铺. 1.准备相关文件 其中 iso文件为WAS主要镜像文件(WAS文件所在地) Instalmgr为IBM安装引导程序instal ...
- ES6中let和var的区别
通过var定义的变量,作用域是整个封闭函数,是全域的 .通过let定义的变量,作用域是在块级或是子块中. 变量提升现象:浏览器在运行代码之前会进行预解析 -不论var声明的变量处于当前作用域的第几行, ...
- web可拖动控件js
先下载:http://code.jquery.com/ui/1.10.3/jquery-ui.js $('.i-i-yuan').draggable({ containment: '#app'//可通 ...