08 2016 档案

摘要:You are given a tree (an undirected acyclic connected graph) with N nodes, and edges numbered 1, 2, 3...N-1. Each edge has an integer value assigned t 阅读全文
posted @ 2016-08-31 20:17 水郁 阅读(364) 评论(0) 推荐(0) 编辑
摘要:F. Gourmet and Banquet time limit per test 2 seconds memory limit per test 512 megabytes input standard input output standard output F. Gourmet and Ba 阅读全文
posted @ 2016-08-28 18:23 水郁 阅读(317) 评论(0) 推荐(0) 编辑
摘要:输入4个点三维坐标,如果是六面体,则输出内切球的球心坐标和半径。 点pi对面的面积为si,点a,b,c组成的面积=|ab叉乘ac|/2。 内心为a,公式: s0=s1+s2+s3+s4 a.x=∑si*pi.x/s0 a.y=∑si*pi.y/s0 a.z=∑si*pi.z/s0 n为p1、p2、p 阅读全文
posted @ 2016-08-28 18:13 水郁 阅读(207) 评论(0) 推荐(0) 编辑
摘要:按逆时针顺序给出n个点,求它们组成的多边形的最大内切圆半径。 二分这个半径,将所有直线向多边形中心平移r距离,如果半平面交不存在那么r大了,否则r小了。 平移直线就是对于向量ab,因为是逆时针的,向中心平移就是向向量左手边平移,求出长度为r方向指向向量左手边的向量p,a+p指向b+p就是平移后的向量 阅读全文
posted @ 2016-08-22 17:02 水郁 阅读(702) 评论(0) 推荐(0) 编辑
摘要:Description Tom is a commander, his task is destroying his enemy’s transportation system.Let’s represent his enemy’s transportation system as a simple 阅读全文
posted @ 2016-08-21 20:10 水郁 阅读(533) 评论(0) 推荐(0) 编辑
摘要:一边长为a的直角三角形,a^2=c^2-b^2。可以发现1、4、9、16、25依次差3、5、7、9...,所以任何一条长度为奇数的边a,a^2还是奇数,那么c=a^2/2,b=c+1。我们还可以发现,1、4、9、16、25、36各项差为8、12、16、20,偶数的平方是4的倍数,那么c=a^2/4- 阅读全文
posted @ 2016-08-21 18:25 水郁 阅读(273) 评论(0) 推荐(0) 编辑
摘要:对每个storages找一下最短的相邻边 阅读全文
posted @ 2016-08-21 18:13 水郁 阅读(215) 评论(0) 推荐(0) 编辑
摘要:黑白灰都是#Black&White 阅读全文
posted @ 2016-08-21 18:04 水郁 阅读(215) 评论(0) 推荐(0) 编辑
摘要:最近有几个博客园的朋友们私信问我怎么设置代码颜色字体的,干脆整理一下。 博客园写博客的TinyMCE编辑器下添加代码有两种方式,我平时用的是第二种,就是代码背景是一行灰一行白的,行号和代码之间有一条绿色竖线的这种。 首先,字体大小我选择16px: 然后,它的颜色是可以通过css定制的,下面的配色是按 阅读全文
posted @ 2016-08-20 19:02 水郁 阅读(4238) 评论(9) 推荐(3) 编辑
摘要:边长是L的正方形,然后两个半径为L的圆弧和中间直径为L的圆相交。求阴影部分面积。 以中间圆心为原点,对角线为xy轴建立直角坐标系。 然后可以联立方程解出交点。 交点是(7L42,L42)。 然后用余弦定理求角度、就可 阅读全文
posted @ 2016-08-18 23:36 水郁 阅读(1052) 评论(0) 推荐(0) 编辑
摘要:Description Your task is to divide a number of persons into two teams, in such a way, that: everyone belongs to one of the teams; every team has at le 阅读全文
posted @ 2016-08-17 21:20 水郁 阅读(520) 评论(0) 推荐(0) 编辑
摘要:Less Time, More profit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description The city planners plan to 阅读全文
posted @ 2016-08-16 22:53 水郁 阅读(881) 评论(0) 推荐(0) 编辑
摘要:1千万长度的数对73和137取模。(两个数有点像,不要写错了) 效率要高的话,每15位取一次模,因为取模后可能有3位,因此用ll就最多15位取一次。 一位一位取模也可以,但是比较慢,取模运算是个耗时的运算。 阅读全文
posted @ 2016-08-15 17:01 水郁 阅读(221) 评论(0) 推荐(0) 编辑
摘要:10种礼物,每种有ai个,每个小朋友分两个礼物,其中普通礼物要求相邻两人的不能一样,求最多分给几个小朋友。 sum/2是最多的情况。什么时候发不了那么多,就是当max很大,无论怎么发,都发不完max。那这时候贪心策略就是一个小朋友发max*2,下一个发max+其它的,再下一个发max*2,再下一个发 阅读全文
posted @ 2016-08-15 16:13 水郁 阅读(316) 评论(0) 推荐(0) 编辑
摘要:300个最大质因数小于2000的数,选若干个它们的乘积为完全平方数有多少种方案。 合法方案的每个数的质因数的个数的奇偶值异或起来为0。 比如12=2^2*3,对应的奇偶值为01(2的个数是偶数为0,3的个数是奇数为1),3的对应奇偶值为01,于是12*3是完全平方数。 然后异或方程组就是: a11x 阅读全文
posted @ 2016-08-15 00:39 水郁 阅读(1169) 评论(0) 推荐(0) 编辑
摘要:空间的200个点,求出至少四边相等,且其余两边必须不相邻的四面体的个数。 用map记录距离点i为d的点有几个,这样来优化暴力的四重循环。 别人的做法是枚举两点的中垂面上的点,再把到中点距离相等的点找出来,n^3的样子。 还要注意四个点共面的情况。 共面判断就是用叉乘计算出ijk三点所在面的法向量,然 阅读全文
posted @ 2016-08-14 23:30 水郁 阅读(634) 评论(0) 推荐(0) 编辑
摘要:Problem Description XXX is very interested in algorithm. After learning the Prim algorithm and Kruskal algorithm of minimum spanning tree, XXX finds t 阅读全文
posted @ 2016-08-13 23:29 水郁 阅读(1880) 评论(5) 推荐(0) 编辑
摘要:Problem Description There are N robots standing on the ground (Don't know why. Don't know how). Suddenly the sky turns into gray, and lightning storm 阅读全文
posted @ 2016-08-13 03:33 水郁 阅读(1159) 评论(1) 推荐(3) 编辑
摘要:机器的不同模式为点,对于每个job,建两条边 A机器需要的模式<->B机器需要的模式。 问题转化为最小点覆盖,然后用二分图的最小点覆盖==最大匹配,用匈牙利算法解。 阅读全文
posted @ 2016-08-12 18:03 水郁 阅读(252) 评论(0) 推荐(0) 编辑
摘要:n个女生,m个男生。如果女生i愿意让男生j作为parner,那就建边i->j+n,和j+n->i。然后用匈牙利算法算出最大匹配。 要注意N和M都要开2倍。 阅读全文
posted @ 2016-08-12 17:41 水郁 阅读(357) 评论(0) 推荐(0) 编辑
摘要:每次选择清除一行或者一列上的小行星。最少选择几次。 将行和列抽象成点,第i行为节点i+n,第j列为节点j,每个行星则是一条边,连接了所在的行列。 于是问题转化成最小点覆盖。二分图的最小点覆盖==最大匹配。 阅读全文
posted @ 2016-08-12 17:05 水郁 阅读(218) 评论(0) 推荐(0) 编辑
摘要:找出最小生成树,同时用Max[i][j]记录i到j的唯一路径上最大边权。然后用不在最小生成树里的边i-j来替换,看看是否差值为0。 wa了好几发,原因是,s初始化为ans,而如果ans本身就是0的话,应该是唯一的最小生成树。 阅读全文
posted @ 2016-08-12 03:03 水郁 阅读(344) 评论(0) 推荐(0) 编辑
摘要:题意:距离定义为两个字符串的不同字符的位置个数。然后求出最小生成树。 阅读全文
posted @ 2016-08-12 00:57 水郁 阅读(301) 评论(0) 推荐(0) 编辑
摘要:圆桌会议必须满足:奇数个人参与,相邻的不能是敌人(敌人关系是无向边)。 求无论如何都不能参加会议的骑士个数。只需求哪些骑士是可以参加的。 我们求原图的补图:只要不是敌人的两个人就连边。 在补图的一个奇圈里(由奇数个点组成的环)每个点都是可以参加的。而一个奇圈一定在点双连通分量里,所以我们把原图的每个 阅读全文
posted @ 2016-08-11 10:10 水郁 阅读(475) 评论(0) 推荐(0) 编辑
摘要:2-SAT的入门题。 a,a',b,b'分别表示两对夫妇,如果a,b有矛盾,那么a要来,就只能来b',b要来,就只能来a'。于是建了两条边(a,b'),(b,a')。 用tarjan强连通分量缩点染色后,如果同一对夫妇染色相同,说明两个要么都来,要么都不来,就不可能有解了。否则,形成的强连通分量中必 阅读全文
posted @ 2016-08-11 08:35 水郁 阅读(636) 评论(0) 推荐(0) 编辑
摘要:儿子数大于1的树根或者 Low[v] >= DFN[u]的非树根节点v 就是割点。 阅读全文
posted @ 2016-08-10 23:57 水郁 阅读(352) 评论(0) 推荐(0) 编辑
摘要:求出每个边双连通分量缩点后的度,度为1的点即叶子节点。原图加上(leaf+1)/2条边即可变成双连通图。 阅读全文
posted @ 2016-08-10 23:55 水郁 阅读(317) 评论(0) 推荐(0) 编辑
摘要:1.打表找规律,下面是打表程序: 2.数学 V其实就是二项式分布的方差,可以这么理解: 样本是第i个盒子:每次把1个球扔进第i个盒子的概率都是1/m,扔不进就是1-1/m,扔了n个球,于是Xi服从二项式分布。 那么就可以直接用二项式的方差公式D(X)=np(1p)阅读全文
posted @ 2016-08-10 13:05 水郁 阅读(265) 评论(0) 推荐(0) 编辑
摘要:用两个栈模拟,并保存每个点的时间戳。每次合并的时候记录合并时的时间戳mcnt和此时的topa和topb记做ta、tb。 每次pop的时候,如果栈的top的时间戳大于mcnt,则普通地pop,否则就在两个栈ta和tb下面找时间戳最大且还没pop掉的。然后用bj[时间戳]来标记已经pop了。 wa了好 阅读全文
posted @ 2016-08-09 18:37 水郁 阅读(351) 评论(0) 推荐(0) 编辑
摘要:若low[v]>dfn[u],则(u,v)为割边。但是实际处理时我们并不这样判断,因为有的图上可能有重边,这样不好处理。我们记录每条边的标号(一条无向边拆成的两条有向边标号相同),记录每个点的父亲到它的边的标号,如果边(u,v)是v的父亲边,就不能用dfn[u]更新low[v]。这样如果遍历完v的所 阅读全文
posted @ 2016-08-09 03:44 水郁 阅读(969) 评论(1) 推荐(0) 编辑
摘要:Mihahim has a string s. He wants to delete exactly one character from it so that the resulting string would be a palindrome. Determine if he can do it 阅读全文
posted @ 2016-08-08 13:52 水郁 阅读(513) 评论(0) 推荐(0) 编辑
摘要:Description Berland has n cities, the capital is located in city s, and the historic home town of the President is in city t (s ≠ t). The cities are c 阅读全文
posted @ 2016-08-08 10:59 水郁 阅读(506) 评论(0) 推荐(0) 编辑
摘要:dfs找出所有节点所在树及到树根的距离及深度及父亲。 i和j在一棵树上,则最短路为dis[i]+dis[j]-dis[LCA(i,j)]*2。 阅读全文
posted @ 2016-08-07 23:44 水郁 阅读(314) 评论(0) 推荐(0) 编辑
摘要:分两类,奇数和偶数的,用隔项前缀和算一下。 后话:今天因为ans的默认值写成max(s[n-1],s[n]),刚开始没找到这个错,又发现只有一个负数会输出0,特判后又wa,我就把ans默认值改为s[1](显然错啊,但是我开始了喜剧性地输出调试:我输入忘记n,然后一直奇怪为什么输出奇怪的值,不过为什 阅读全文
posted @ 2016-08-05 19:31 水郁 阅读(324) 评论(0) 推荐(0) 编辑
摘要:找规律。 阅读全文
posted @ 2016-08-05 19:06 水郁 阅读(284) 评论(0) 推荐(0) 编辑
摘要:高中物理斜抛运动,简单分析一下角度固定下来则可以计算每个cannonball的降落坐标lnd。 因此暴力计算不同角度下的结果。 阅读全文
posted @ 2016-08-05 01:31 水郁 阅读(381) 评论(0) 推荐(0) 编辑
摘要:dfs找出联通块个数cnt,当形成环时,令指向已访问过节点的节点变成指向-1,即做一个标记。把它作为该联通图的根。 把所有联通的图变成一颗树,如果存在指向自己的点,那么它所在的联通块就是一个树(n-1条边),选择这样一个点,其它联通块的根指向它,就需要cnt-1次改变。如果都是环(没有指向自己的), 阅读全文
posted @ 2016-08-04 22:13 水郁 阅读(481) 评论(0) 推荐(1) 编辑
摘要:Least Common Ancestors 节点范围是1~1e18,至多1000次询问。 只要不断让深的节点退一层(>>1)就能到达LCA。 用点来存边权,用map储存节点和父亲连边的权值。 阅读全文
posted @ 2016-08-04 03:16 水郁 阅读(230) 评论(0) 推荐(0) 编辑
摘要:找出奇数个的数有几个,就分几组。 阅读全文
posted @ 2016-08-04 02:52 水郁 阅读(207) 评论(0) 推荐(0) 编辑
摘要:dp[i][0..1]表示i不来/来参加的最大总高兴值。 则dp[i][1]+=dp[v][0](v是i的所有直接下属) dp[i][0]+=max(dp[v][0],dp[v][1]) 没有告诉你树根,dp的方向我第一次写的是用队列维护叶子节点,每次计算完,它的父亲的孩子数量--,如果减到0,就变 阅读全文
posted @ 2016-08-04 02:46 水郁 阅读(378) 评论(0) 推荐(0) 编辑
摘要:f[i][0..2]表示第i天休息|运动|比赛最少的休息天数。 阅读全文
posted @ 2016-08-03 23:30 水郁 阅读(394) 评论(0) 推荐(0) 编辑
摘要:r[i],c[i]分别表示第i行有几个*,第i列有几个*。 枚举每个位置如果c[i]+r[j]-(本身是不是*)==总*数,则该位置即为答案。 阅读全文
posted @ 2016-08-03 23:20 水郁 阅读(272) 评论(0) 推荐(0) 编辑
摘要:维护最新的R,遇到L时如果R出现过就更新答案。 阅读全文
posted @ 2016-08-03 23:11 水郁 阅读(262) 评论(0) 推荐(0) 编辑
摘要:对科学计数法表示的数,输出其10进制的形式。 c++来做,需要考虑这些细节: 当b==0,d==0时,只输出a。 当不需要补零的情况有两种: 一种是刚好是整数,只输出a(注意1.0e1的情况是输出1);另一种是还要输出剩下的小数部分。 JAVA和python则可以很轻松地解决(粘一发别人的代码): 阅读全文
posted @ 2016-08-03 22:52 水郁 阅读(385) 评论(0) 推荐(0) 编辑
摘要:终于靠着理解写出KMP了,两种KMP要代码中这种才能求循环节。i-next[i]就是循环节。 阅读全文
posted @ 2016-08-02 09:31 水郁 阅读(265) 评论(0) 推荐(0) 编辑

欢迎这位怪蜀黍来到《2016 年 8月 随笔档案 - 水郁 - 博客园》
点击右上角即可分享
微信分享提示