ecna专题

【2016-2017 ACM-ICPC (ECNA 2016) H】Vin Diagrams(dfs)

题目链接:http://codeforces.com/gym/101196   题目大意:有一张图,里面有两个凸边形,分别是A和B,求只被A包住的点的个数,只被B包住的点的个数,以及同时被A和B包住的点的个数。   题目思路:刚开始我的想法是先抠出A和B以后,然后对于每一行,分别设立flag1和flag2,如果是奇数次穿过A的某段,那就在下一次遇到.的时候记,然后在偶数次经过A的某段的时候

【2016-2017 ACM-ICPC (ECNA 2016) G】That's One Hanoi-ed Teacher(思维)

题目链接:http://codeforces.com/gym/101196   题目大意:询问当前状态是否是最优方案中的一种,若是输出剩下还需多少步   题目思路: 汉诺塔的递归函数的写法是 dfs(a,c,b) dfs(b,a,c) 分别是在a以c为辅助去b,在b以a为辅助去c 所以其实它呈现出的是一个二叉树的结构 首先根据汉诺塔的性质,最大的环要么在第一个柱子,要么在第三个

【2016-2017 ACM-ICPC (ECNA 2016) F】Removal Game(区间dp)

题目链接:http://codeforces.com/gym/101196   题目大意:有n个数字成环,删掉一个数字的代价是周围俩数的gcd,只剩俩数字的时候用这俩数字的gcd作为代价,问删掉所有数字的最小代价   题目思路:考虑区间dp,dp[i][j]表示i,j区间内,删的只剩下i和j的最小代价,当长度为1和2时,dp值为0,其他时候枚举中间的点作为最后一个被删除的点,那么dp[i]