Codefest19受虐记
date: 2019-08-28
前言
比赛链接:Codefest 19
A题
思路:
这是一道水题。你对着样例递推打一个表出来,会发现结果三个一组循环。
例如:A = [3, 4, 7, 3, 4, 7, 3, 4, 7, ...]
好了,我们只需要读入第0和第1项,把他们的异或值作为第2项,输出n对3取模的那一项就好。
代码:
#include<bits/stdc++.h>
using namespace std;
int T,a[3],n;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>T;
while(T--){
cin>>a[0]>>a[1]>>n;
a[2]=a[0]^a[1];
cout<<a[n%3]<<endl;
}
return 0;
}
B题
思路:
这道题很容易暴力并且超时,首先用O(N2)**二重循环枚举去掉的区间,之后再**O(NlogN)**从头到尾跑一遍判重,复杂度是**O(N3logN)。
但是,我们先枚举从头开始的留下来的区间的长度(保证内部没有重复的),对于每一次枚举,右边的留下的长度都满足单调性,但是应该不可以二分(也可能我不会),相反,直接从右往左跑一遍判重就可以了。复杂度O(N^2logN)(log是因为使用了set来判重)。
代码:
#include<bits/stdc++.h>
using namespace std;
int n;
int a[2005];
set<int> s;
int ans,l,r;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
ans=n;
for(int i=0;i<=n;i++){
if(s.find(a[i])!=s.end()){
break;
}
s.insert(a[i]);
set<int> t;
for(int j=n;j>=1;j--){
if(s.find(a[j])!=s.end()||t.find(a[j])!=t.end()){
ans=min(ans,j-i);
break;
}
t.insert(a[j]);
}
}
cout<<ans<<endl;
return 0;
}
C题
思路:
复制很多遍样例就可以AC(真的)。
你把大的矩阵分割成很多4行4列的矩阵,之后你就可以把样例1的Output填上去。从左往右,从上往下第i个(从0开始数)矩阵的元素要加上16*i
。
代码:
此处我没有复制样例直接使用如下矩阵作为复制母版:
0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
其实他们的异或值也是相等的。
#include<bits/stdc++.h>
using namespace std;
int n;
int cur;
int g[1005][1005];
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n;
for(int i=0;i<n;i+=4){
for(int j=0;j<n;j+=4){
for(int k=0;k<4;k++){
for(int l=0;l<4;l++){
g[i+k][j+l]=cur++;
}
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cout<<g[i][j]<<' ';
}
cout<<endl;
}
return 0;
}
结束
从D开始我都不会做,所以就酱~
Codefest19受虐记的更多相关文章
- 2019CSP-J/S受虐记
emmmm...... 今年noip很波折,我从7月开始准备 但CCF居然停了noip,这搞得我很迷茫,CCF你在干什么! 然后又恢复了,这有搞得我很懵逼?(还改名叫csp了) 就换了个名,CCF你搞 ...
- CSP J/S 2019受虐记
一枚蒟蒻的游记~ 提高组DAY1 不是说每场考试都有一道签到题吗 那我tm读了三遍题硬是没找到一道水题是怎么回事(是我太弱了吗) 没办法,硬着头皮做T1 暴力写法...期望得分30pts 于是...在 ...
- 本以为自己 MySQL 够牛逼了,直到亲自去阿里受虐了一次!
前言 众所周知,简历上“了解=听过名字:熟悉=知道是啥:熟练=用过:精通=做过东西”. 相信大家对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构.索引作为MySQ ...
- 听说你们要开始学C了
同学们好: 先自我介绍一下,我是你们的助教吴喆(厚颜无耻地要求大家叫我吉吉老师:-D),本科学的电子,所以陆陆续续接触了不少C/C++的工作,曾经被编码折磨得死去活来,如今却对其念念不舍,颇有点“斯德 ...
- 【转载】ACM总结
转自亲学长的总结 声明:本文是写给弱校ACM新手的一点总结,受自身水平和眼界所限,难免会有一些个人主观色彩,希望大牛指正 感谢@Wackysoft .@哇晴天 . @ 一切皆有可能1 的指教,现根据这 ...
- ACM感悟
声明:本文是写给弱校ACM新手的一点总结,受自身水平和眼界所限,难免会有一些个人主观色彩,希望大牛指正 感谢@Wackysoft .@哇晴天 . @ 一切皆有可能1 的指教,现根据这些建议,文章已进行 ...
- 如何成为一位优秀的创业CEO
英文原文:How to Be Startup CEO 编者按:本文来自 Ryan Allis,是一位来自旧金山的创业者和投资人.在 2003 年创立了 iContact,并任 CEO. 做创业公司的 ...
- ACMer(转)
我所了解的ACMer主要分为以下几类: A类:天才型(这个在咱们学校基本不存在),所以就不用考虑了-_- ! B类:刷题很快,题数是最多的几个之一,但有一个习惯就是喜欢看题解,思考问题一想不出来了就想 ...
- 【转】如何成为一位优秀的创业CEO
编者按:本文来自 Ryan Allis,是一位来自旧金山的创业者和投资人.在 2003 年创立了 iContact,并任 CEO. 做创业公司的 CEO 可以说是世界上最有挑战性的事情之一.你得让客户 ...
随机推荐
- HDU1517 Multiply Game
Stan and Ollie play the game of multiplication by multiplying an integer p by one of the numbers 2 t ...
- socket AcceptAsync方法的使用
AcceptAsync与Accept很大的不一样 Accept是一个同步 阻塞的已经封装好底层的方法 AcceptAsync是一个异步 非阻塞未封装的底层连接入口,需要手动填入连接代码用于优化sock ...
- Python的re模块,正则表达式书写方法
Python的re模块,正则表达式 #导入re模块 import re 1.match方法的使用: result = re.match(正则表达式,待匹配的字符串) 正则表达式写法: 第一部分: 字 ...
- 第三方OAuth授权登录,QQ、微信(WeChat)、微博、GitHub、码云(Gitee)、淘宝(天猫)、微软(Microsoft )、钉钉、谷歌(Google)、支付宝(AliPay)、StackOverflow
Netnr.Login 第三方OAuth授权登录 支持第三方登录 三方 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 参考文档 安装 ( ...
- CSS——overflow的参数以及使用
学习网站:https://developer.mozilla.org/zh-CN/docs/Web/CSS/overflow
- Cisco学习记录(一):Cisco Packet Tracer官网下载方法
通过Cisco Packet Tracer学习计算机网络知识 本人大三狗一枚,一直以来都在学java, python, web开发的我,经过一番决定,毅然决然要开始深入学习计算机网络!通过Cisco ...
- vue bus.js 使用方法
1 ,新建bus.js 内容如下 2,bus.$emit 绑定数据 bus.$emit('tags', this.tagsList); 第一个参数为定义的变量,第二个为集合数据 3, 监听数据 bus ...
- Litho在美团动态化方案MTFlexbox中的实践
1. MTFlexbox MTFlexbox是美团内部应用的非常成熟的一种跨平台动态化解决方案,它遵循了CSS3中提出的Flexbox规范来抹平多平台的差异.MTFlexbox适用于重展示.轻交互的业 ...
- python操作文件和目录查看、创建、删除、复制
python内置了os模块可以直接调用操作系统提供的接口函数,os.name查询的是操作系统,‘nt’表示windows系统 >>> import os >>> o ...
- Oracle trunc函数的使用
1. 对日期的操作 2. 对数字的操作 1.对日期的操作 /**************日期********************/ SELECT TRUNC(SYSDATE) FROM DUAL; ...