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受虐记的更多相关文章

  1. 2019CSP-J/S受虐记

    emmmm...... 今年noip很波折,我从7月开始准备 但CCF居然停了noip,这搞得我很迷茫,CCF你在干什么! 然后又恢复了,这有搞得我很懵逼?(还改名叫csp了) 就换了个名,CCF你搞 ...

  2. CSP J/S 2019受虐记

    一枚蒟蒻的游记~ 提高组DAY1 不是说每场考试都有一道签到题吗 那我tm读了三遍题硬是没找到一道水题是怎么回事(是我太弱了吗) 没办法,硬着头皮做T1 暴力写法...期望得分30pts 于是...在 ...

  3. 本以为自己 MySQL 够牛逼了,直到亲自去阿里受虐了一次!

    前言 众所周知,简历上“了解=听过名字:熟悉=知道是啥:熟练=用过:精通=做过东西”. 相信大家对于MySQL的索引都不陌生,索引(Index)是帮助MySQL高效获取数据的数据结构.索引作为MySQ ...

  4. 听说你们要开始学C了

    同学们好: 先自我介绍一下,我是你们的助教吴喆(厚颜无耻地要求大家叫我吉吉老师:-D),本科学的电子,所以陆陆续续接触了不少C/C++的工作,曾经被编码折磨得死去活来,如今却对其念念不舍,颇有点“斯德 ...

  5. 【转载】ACM总结

    转自亲学长的总结 声明:本文是写给弱校ACM新手的一点总结,受自身水平和眼界所限,难免会有一些个人主观色彩,希望大牛指正 感谢@Wackysoft .@哇晴天 . @ 一切皆有可能1 的指教,现根据这 ...

  6. ACM感悟

    声明:本文是写给弱校ACM新手的一点总结,受自身水平和眼界所限,难免会有一些个人主观色彩,希望大牛指正 感谢@Wackysoft .@哇晴天 . @ 一切皆有可能1 的指教,现根据这些建议,文章已进行 ...

  7. 如何成为一位优秀的创业CEO

    英文原文:How to Be Startup CEO 编者按:本文来自 Ryan Allis,是一位来自旧金山的创业者和投资人.在 2003 年创立了 iContact,并任 CEO. 做创业公司的 ...

  8. ACMer(转)

    我所了解的ACMer主要分为以下几类: A类:天才型(这个在咱们学校基本不存在),所以就不用考虑了-_- ! B类:刷题很快,题数是最多的几个之一,但有一个习惯就是喜欢看题解,思考问题一想不出来了就想 ...

  9. 【转】如何成为一位优秀的创业CEO

    编者按:本文来自 Ryan Allis,是一位来自旧金山的创业者和投资人.在 2003 年创立了 iContact,并任 CEO. 做创业公司的 CEO 可以说是世界上最有挑战性的事情之一.你得让客户 ...

随机推荐

  1. 几个非常适合练手的python爬虫项目,总有一个能搞定!

    前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:Python玩家 注意:如果你平时学Python有问题找不到人解答,可以 ...

  2. 【MobX】390- MobX 入门教程(上)

    点击上方"前端自习课"关注,学习起来~ 本文考虑到篇幅问题,将<MobX 入门教程>分成上.下两篇文章,方便阅读.分配安排: 一.MobX 介绍 首先看下官网介绍: ★ ...

  3. 【Spring Boot】定时任务

    [Spring Boot]定时任务 测试用业务Service package com.example.schedule.service; import org.springframework.ster ...

  4. NodeJS4-2静态资源服务器实战_实现获取文件路径

    实例2 : 实现获取文件路径,判断是文件还是文件夹,如果是文件夹就显示里面的列表文件,如果是文件就显示里面的内容 defaultConfig.js module.exports={ root:proc ...

  5. 安卓逆向基础(002)-android虚拟机

    一, android分两种 1.Android 5.0以下(不含5.0) dalvik字节码 为dalvik虚拟机(jit机制) 基于寄存器架构 .dex=>dexopt=>.odex d ...

  6. git 知识,适合新手 滤清思路

    1,密钥 (公钥和私钥) @ 公钥放在服务器上(说白了这里的服务器就是远程仓库, 就是谁建立的远程仓库这个公钥就放在他的ssh设置那) @ 私钥 放在本地就行,不用动,就是你生产密钥的.ssh 文件里 ...

  7. 《Java基础知识》Java异常处理详解

    1. Java 中的异常 前言:Java 中的异常处理是处理程序运行错误时的强大机制之一,它可以保证应用程序的正常流程. 首先我们将了解java异常.异常的类型以及受查和非受查异常之间的区别. 1.1 ...

  8. Nginx 常用配置方式说明

    原文内容来自于LZ(楼主)的印象笔记,如出现排版异常或图片丢失等问题,可查看当前链接:https://app.yinxiang.com/shard/s17/nl/19391737/7619763f-1 ...

  9. 动态代理模式_应用(Redis工具类)

    本次使用动态代理的初衷是学习Redis,使用Java操作Redis时用到Jedis的JedisPool,而后对Jedis的方法进一步封装完善成为一个工具类.因为直接使用Jedis对象时,为了保证性能, ...

  10. Android 状态栏通知 Notification

    private NotificationManager manager; private Notification.Builder builder; @Override protected void ...