A - Choosing Capital for Treeland CodeForces - 219D 题意:有一颗单向边的树,要选取一个结点作为首都.要求是这个结点到其它结点,总共需要翻转的路径数量最少(因为是单向边,翻转了才能到达另一个结点). 做法:树形dp. 代码:待补. B - Maximal Intersection CodeForces - 1029C 题意:给出n个区间,然后你可以删除一个区间,问你剩下的区间的交集的最大长度是多少. 思路:首先我们得先知道n条线段公共的线段一定是…
A - True Liars 题意: 那么如果一个人说另一个人是好人,那么如果这个人是好人,说明 对方确实是好人,如果这个是坏人,说明这句话是假的,对方也是坏人. 如果一个人说另一个人是坏人,那么如果这个人是好人,说明对方是坏人,如果这个是坏人,说明 对方是好人. 也就是如果条件是yes说明这两个是相同集合的,否则是两个不同的集合. 思路: 用r[i]表示i结点与根结点的关系,0为相同集合,1为不同集合.这是一个经典的并查集问题. 这样处理之后,还需要判断是否唯一 我们通过并查集,可以将所有人分…
A.Jongmah   CodeForces-1110D 题意:你在玩一个数字游戏,有一堆写在瓦片上的数字,希望你能组成最多的三元组(三个数字相同,或顺子). 这题用到的方法是动态规划.f[i][j][k]表示为i的数字中,属于组成三个连续数字三元组的开头的有k 个,属于组成三个连续数字的三元组的中间的有j个,由于连续三个的数字组成三元组的数量不会大于等于三个,如果大于等于的话就是不会更优的,那么转移方程为: f[i+1][j][k]=max(f[i+1][j][k],f[i][k][l]+l+…
2019 wannafly winter camp day 3 J 操作S等价于将S串取反,然后依次遍历取反后的串,每次加入新字符a,当前的串是T,那么这次操作之后的串就是TaT.这是第一次转化. 涉及到子序列的题目的一个常用技巧是:对于子序列来说,贪心的能取就取. 因此本题对于每个字符串,需要维护的东西有f[i][j]表示第一次取i,下一次想取j的方案数:g[i]表示第一次取i的方案数:vis[i]表示当前字符i在这个串中有没有出现.具体的转移需要仔细讨论.…
2019 wannafly winter camp Name Rank Solved A B C D E F G H I J K day1 9 5/11 O O O O O day2 5 3/11 O O O day3 6 6/10 O O O O O Ø day4 5 6/11 O O O O O O day5 3 4/10 O O O O day7 7 7/10 O O O O O O O day8 7 5/10 O O O O O…
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer.android.com/training/basics/activity-lifecycle/index.html 当一个用户使用你的应用,或者返回,或者退出时,Activity的实例会在它的生命周期内对应地切换到相应的状态.例如:当你的Activity第一次启动时,它会来到系统的前台并获得用户焦…
题意: 有一个运动场,运动场的坐席是环形的,有1~300共300列座位,每列按有无限个座位计算T_T. 输入: 有多组输入样例,每组样例首行包含两个正整数n, m.分别表示共有n个人,m次操作. 接下来m行,每行包含a, b, x三个整数,表示a在b右边x个位置. 输出: 如果a,b的关系已经存在,新操作如果获得的位置关系与已存在的关系不同,则ans+1.输出ans,每组输出占一行. 用加权并查集可以解决.权值存在val[]数组里,val[i]的含义为从i到根节点的距离. 由于是一个长度为300…
目录 day1 F div1 爬爬爬山 (最短路) B div2 吃豆豆 (dp) J div2 夺宝奇兵(暴力) J div1 夺宝奇兵 (权值线段树) C div1 拆拆拆数 E div1 流流流动(冰雹猜想 ,树形dp) I div2 起起落落 (dp) I div1 起起落落 (权值线段树优化dp) day2 A div2 Erase Nodes(贪心) B div2 Erase Numbers III(贪心) H div1&2 Cosmic Cleaner(计算几何) K div1 S…
solve:4/11 补题:6/11 A 机器人 补题:zz 这是一道分类讨论的题目,有一个规律就是如果必须要从第一个区到第二个区,那么最多转区两次(1到2一次,2到1一次),然后分类讨论即可,只要细心一定能做出来. //#pragma comment(linker, "/STACK:102400000,102400000") #include<iostream> #include<stdio.h> #include<stdlib.h> #inclu…
solve 4/11 A Erase Numbers II Code:KK Thinking :KK 用ans表示当前最优答案,maxx表示遍历到的最大数字,一开始ans肯定等于a[ 1 ]+a[ 2 ],然后每次往后找,都把当前的a [ j ]拼到maxx后面,然后和答案比较,每次也更新maxx,时间复杂度o(n) 注意数据是1e19,会爆long long,用unsigned long long 就可以过. #include<cstdio> #include<algorithm>…