摘要: 题目链接:http://codeforces.com/contest/831/problem/D 思路:由于拿到钥匙之后需要走的路程是确定的,因此关键在于如何选择钥匙。对于最靠近P位置的人来说,拿最接近P且同侧的钥匙是最划算的。 因此二分答案,每次check的时候从小到大判断对于所有的人是否都能在时 阅读全文
posted @ 2017-07-17 09:41 EricJeffrey 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/contest/831/problem/E 思路:把数字全部列出来模拟一下如下,+ 表示这个数这次放到下面,o 表示这个数这次拿走,x表示这个数已经被拿走 3 7 6 2 3 1 2 6 + + + + + o o + + + + o o x x 阅读全文
posted @ 2017-07-16 23:56 EricJeffrey 阅读(117) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://codeforces.com/contest/828/problem/D 必须是一棵树!大体思路就是按照画同心圆的方法给排列出来,一号作为圆心一层一层向外扩展。 证明的话还得想想。。。 代码: 题目: D. High Load time limit per test 2 se 阅读全文
posted @ 2017-07-12 17:21 EricJeffrey 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 题目链接: http://codeforces.com/contest/828/problem/C 或许对于我来说的玄学做法你们并不在意。 题目大意很清楚,就是构建一个字典序最小的字符串满足给出的几个要求。直接暴力肯定不行,想优化怎么也想不出来,偶然看到一AC的代码感觉非常厉害,按照思路自己写了一遍 阅读全文
posted @ 2017-07-12 15:52 EricJeffrey 阅读(161) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3333 大意是区间求和,不过求的是所有不同元素的和。因此可以从如何去除不同元素方面入手: 离线存储所有查询并且按照区间最右端下标从小到大排序,为何要这样做后面会提到。 建树之后,从左到右遍历元素,标记下标 阅读全文
posted @ 2017-07-11 14:06 EricJeffrey 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2991 挑战程序设计竞赛书上的例题。书上的思路还是蛮巧妙的,第一遍看真的没怎么看太懂,今天算是终于弄懂了。 稍微思考即可想到如果都用向量表示的话实际上就是从s+1到n的区间更新了,每个向量都旋转一定角度最后终点坐标实际上是全部向量的和。 阅读全文
posted @ 2017-07-10 11:14 EricJeffrey 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3468 线段树区间更新模板题,加个延迟标记即可。 注意:区间大小是r-l+1,query,更新时要更新子节点,同时注意+=与=! discuss里面有数据,wa的可以看看。。。 代码: 题目: A Simple Problem with 阅读全文
posted @ 2017-07-09 14:46 EricJeffrey 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 期末考试忙完,希望成绩不会太差,拿个奖学金最好了。 边复习边用java写了一个自己用的程序,期间遇到了许多问题,学会了许多东西 Swing 的布局管理,JList 的MVC模式--模式,视图,控制器,对象输入输出流等等。之所以花这么长时间写主要还是相信有想法就要坚持,半途而废只会一事无成。 接下来是 阅读全文
posted @ 2017-07-09 13:45 EricJeffrey 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1028 一道经典题,也是算法设计与分析上的一道题,可以用递推,动态规划,母函数求解,我用的是动态规划,也就是递推的变形。 dp[i][j]表示数i的划分中最大数不超过j的划分的个数 状态转移方程: if( 阅读全文
posted @ 2017-06-06 19:06 EricJeffrey 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2282 暴力就不说了,对于求0~n所有数字中0~9出现过的次数来说,可以直接对n的每一位计算出0~9中每个数字出现的次数(数位dp还不会。。。。)。 仔细观察能够发现,例如n=2406, 那么对于百位来说: 0 2*100次 1 2*1 阅读全文
posted @ 2017-06-06 13:39 EricJeffrey 阅读(142) 评论(0) 推荐(0) 编辑