acm
文章平均质量分 82
tiankonguse
我喜欢做自己感兴趣的事,可以为之付出一切时间。目前,我是一个程序员。我坚信牛奶会有的,面包会有的.
展开
-
关于 double sort 这道题的思考
首先今天写的内容将会简短,因为昨天写的好久好久,结果自动保存功能还没有实现。不过现在,时刻都在自动保存着,再也不用担心这个问题了。首先声明这篇记录不是解题报告,只是一场我的大脑里思路的旅行。前几天学弟学妹们有一场比赛,学弟邀请我作为技术支持者去帮忙,在那个过程中我看了几道题。其中有两道题正常比赛没有其他人提交,于是我研究了一下。研究的第一道就一个暴力dfs就可以过,只是可能正常比赛没人看懂题意,我看了好几个小时才看懂的。第二道就是 double sort。什么是 double sort 呢?原创 2014-05-15 18:34:42 · 1220 阅读 · 0 评论 -
【百度之星2014~复赛)解题报告】The Query on the Tree
这几天把毕业答辩的事弄完了,于是买票出来玩,结果周六是百度之星的复赛,于是我就没有办法来做比赛了,不过看了看题,目测可以过我两三道题.今天已经是比赛的第二天了,我还一直没有时间来A掉这些题,今晚抽空先把最简单的线段树那道题A了再说.题目说的很清楚了,自己看吧.有一棵树,树的每个点有点权,每次有三种操作: 1. Query x 表示查询以x为根的子树的权值和。 2. Change x y 表示把x点的权值改为y(0<=y<=100)。 3. Root x 表示把x变为根。原创 2014-06-02 12:21:46 · 991 阅读 · 0 评论 -
【百度之星2014~复赛 解题报告~正解】The Query on the Tree
昨天写了 The Query on the Tree 的解题报告,但是遗留下一个问题,不能算是完美解决这道题.因为如果精心构造数据的话,昨天的题解还是会被卡住的.今天中午睡觉的时候突然想起一个不会被卡住的方法.题意 有一棵树,树的每个点有点权,每次有三种操作: 1. Query x 表示查询以x为根的子树的权值和。 2. Change x y 表示把x点的权值改为y(0<=y<=100)。 3. Root x 表示把x变为根。原创 2014-06-03 20:36:30 · 884 阅读 · 0 评论 -
【百度之星2014~资格赛解题报告】
最近要毕业了,有半年没做比赛了.这次参加百度之星娱乐一下.现在写一下解题报告.这次比赛大牛都不屑于做百度之星了,于是我很幸运达到前百名,百度不知道会不会实现说的那样发一件衣服.这次比赛有四道题,起初只是随便做做,所以我是倒着做的.先看看四道题的类型:Energy Conversion 暴力 复杂度 O( log(n) )Disk Schedule DP 复杂度 O( n ^ 2)Xor Sum 字典树 复杂度 O( 32n )Labyrinth DP 或搜索 复杂度 O(原创 2014-05-26 12:54:08 · 892 阅读 · 0 评论 -
【百度之星2014~初赛(第二轮)解题报告】JZP Set
最近要毕业了,有半年没做比赛了.这次参加百度之星第二轮娱乐一下.现在写一下 JZP Set 这道题的的解题报告.题意是:给你n个数(1到n),给你一个规则,问用这个规则可以得到多少个合法的集合.具体规则是:一个合法集合里任意挑两个数,如果这两个数之和是偶数,这个偶数除以2得到的数也要在这个合法集合里.比如: 3 和9 在集合里,3+9是偶数,所以 (3+9)/2 = 6 也要在这个集合里.然后 {3,6,9}就是一个合法的集合.原创 2014-05-26 14:38:37 · 875 阅读 · 0 评论 -
【百度之星2014~初赛(第二轮)解题报告】Chess
最近要毕业了,有半年没做比赛了.这次参加百度之星娱乐一下.现在写一下 Chess 这道题的的解题报告.题意很简单,告诉你一个矩阵,以及一个起始坐标.问走k步有多少个不同的路线.一个路线可以记为上下左右,则k步有k个上下左右,比如 "上上左左下下" 是一个路线.原创 2014-05-26 12:22:50 · 904 阅读 · 0 评论 -
【百度之星2014~初赛解题报告】
最近要毕业了,有半年没做比赛了.这次参加百度之星的初赛娱乐一下.现在写一下解题报告.还是先看看四道题的类型吧1.Scenic Popularity 暴力 复杂度O( 100 * 100 * 10000 ) 或者O( T * K * R) 线段树2.Chess DP 复杂度 O(n^2)3.Best Financing DP 复杂度O(n)4.JZP Set 数论或DP 复杂度 O(n * log(n))原创 2014-05-27 14:22:19 · 841 阅读 · 0 评论 -
2014年北京网络赛 Instrusive HDU 5040 题解 优先队列
网赛的时候看了这道题,发现就是平常的那种基础搜索题。由于加了一个特殊条件:可以一次消耗3秒或原地停留1秒。那就不能使用简单的队列了,需要使用优先队列才行。题意告诉一副地图:一个起点,一个终点,若干墙,若干监视器,剩下的是空地。起点,终点,监视器都算空地。监视器初始值会指定一个方向,共有四个方向。监视器每秒顺时针转动到下个方向。监视器视野距离为2.在监视器的位置或在监视器面向的格子是监视区域。普通的移动一格需要消耗1秒时间。在监视器下移动一格需要消耗3秒时间。如果呆在原地不动,即原创 2014-09-24 10:07:55 · 860 阅读 · 0 评论 -
位运算 的探究
给学弟出了一道题, 告诉你n个数, 其中只有一个数出现一次, 其他的数都出现三次.求出现一次的那个数.学弟发给我一个代码, 第一眼竟然没看明白.int run(int n, int* A) { int ones = 0;// 出现一次的标志位 int twos = 0;// 出现第二次标志位 for(int i = 0; i < n; i++) { ones = (ones ^ A[i]) & ~twos; twos = (twos ^ A[i])原创 2014-10-23 10:16:25 · 642 阅读 · 0 评论