CF768
Codeforces Round #406 (Div. 1)
A.Berzerk
考虑先手必胜态,一定是先手移动到某一个位置以后,这个位置是后手的必败态
考虑先手必败态,一定是无论先手如何移动,先手所能一道的任何位置都是后手的必胜态
基于此,我们可以直接记忆化搜索
可能题目比较煞笔我的搜索姿势不好,由于loop的关系,我需要正着和倒着各搜一遍才行
B.Legacy
很显然这是最短路
但是有到区间的边
考虑用线段树辅助建图
一颗线段是表示由区间出发的点,即2类型的边,默认所有点对应的叶节点指向所有点,显然,线段树中父节点应该可以花费0通往儿子节点,然后2类型的边,从线段树连向对应的点即可
需要另外一颗线段树,来建出3类型的边,与2相似,显然,线段树中儿子节点应该可以花费0通往父节点,所有的点指向其对应的叶子结点,3类型的边有对应的边指向第二课线段树中的点即可
这是一张稠密图,所以直接跑dij即可
C.Till I Collapse
显然,贪心策略是正确的,考虑优化
数组f[i][j]表示范围[i,j)之内,如果不存在和a[j]相等的数,那么f[i][j]=1,反之f[i][j]=0
对于每一个f[i]我们可以构建一个线段树来快速的求解,考虑的内存,我们用主席树
那么对于每一个k,我们只需要二分即可
复杂度∑ans(k)<=nlogn,那么,直接二分的话,会使复杂度带3个log,会TLE
考虑直接在主席树上二分,可以化掉一个log
D.Rap God
开起来是一道树分治,不过很繁琐啊
弃疗咯...............
E.ALT
只会简单的建图啊
用二分图来建图
把每一个公民看作是第一部分的一个点,第二部分的每一个点对应树上的一条路径
当且仅当,公民x,从xi-->xj经过了节点j,那么从第一部分的点x向第二部分的点y连边
这样以后,我们所需要解决的问题就成了二分图点的最小覆盖
二分图点的最小覆盖是说要把每一条边,至少一个顶点包含在所求集合内,对于这道题目,这样,来建图显然是正确的
然后一个性质就是说二分图的|最小点集|=|最大匹配|
那么直接跑二分图匹配时间复杂度显然是过不去的
然后就gg了........
CF768的更多相关文章
随机推荐
- python-函数基础、函数参数
目录 函数的基础 什么是函数 为何用函数 如何调用函数 定义函数的三种形式 无参函数 有参函数 空函数 函数的返回值 什么是返回值 为什么要有返回值 函数的调用 函数参数的应用 形参和实参 位置参数 ...
- Anaconda的安装、使用以及与PyCharm的链接
初学Python的盆友们是否有这样的疑惑: 选择Python2还是Python3呢?(后者并不完全兼容前者) 听说两者可以同时安装,那怎么管理呢? Python那么丰富的第三方库,一个一个装太麻烦啦 ...
- cpu位图
SMP处理器中要用到cpu位图,用来维护系统内CPU的状态信息,具有代表性的有: cpu_possible_map.cpu_online_map.cpu_present_map. static DEC ...
- ubuntu gcc的下载链接,比较快的。
http://mirrors.163.com/ubuntu-releases/ http://xhmikosr.1f0.de/tools/msys/
- poj 3614 伪素数问题
题意:1.p不是素数 2.(a^p)%p=a 输出yes 不满足输出no 思路: 判断素数问题,直接暴力判断 bool is_prime(int n) { for(int i=2;i*i<= ...
- 【LeetCode】Linked List Cycle II(环形链表 II)
这是LeetCode里的第142道题. 题目要求: 给定一个链表,返回链表开始入环的第一个节点. 如果链表无环,则返回 null. 说明:不允许修改给定的链表. 进阶:你是否可以不用额外空间解决此题? ...
- C语言高效编程的几招,你会了几招了?
编写高效简洁的C 语言代码,是许多软件工程师追求的目标.本文就工作中的一些体会和经验做相关的阐述,不对的地方请各位指教. 第1 招:以空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个 ...
- MediaStore类的使用
安卓系统会在每次开机之后扫描所有文件并分类整理存入数据库,记录在MediaStore这个类里,通过这个类就可以快速的获得相应类型的文件. 当然这个类只是给你一个uri,提取文件的操作还是要通过Curo ...
- 算法学习记录-排序——插入排序(Insertion Sort)
插入排序: 在<算法导论>中是这样描述的 这是一个对少量元素进行排序的有效算法.插入排序的工作机理与打牌时候,整理手中的牌做法差不多. 在开始摸牌时,我们的左手是空的,牌面朝下放在桌子上. ...
- selenium - js日历控件处理
# 13. js处理日历控件 ''' 在web自动化的工程中,日历控制大约分为两种: 1. 可以直接输入日期 2. 通过日历控件选择日期 基本思路: 利用js去掉readonly属性,然后直接输入时间 ...