HDU 4303 Hourai Jeweled 解题报告】的更多相关文章

HDU 4303 Hourai Jeweled 解题报告 评测地址: http://acm.hdu.edu.cn/showproblem.php?pid=4303 评测地址: https://xoj.red/contests/view/1155/1 题目描述 Kaguya Houraisan was once a princess of the Lunarians, a race of people living on the Moon. She was exiled to Earth over…
http://acm.hdu.edu.cn/showproblem.php?pid=4303 题意:给出一棵树,树上的每一个节点都有一个权值,每条边有一个颜色,如果一条路径上相邻边的颜色都是不同的,那么它就是符合要求的.求出所有符合要求的路径上的节点的权值和. 思路:num[u]表示u节点下有几条符合要求的子树路径,sum[u]表示u为起点(或者终点也可以)往子树方向符合要求的路径权值和. 如图,u的父节点颜色为1,u->v的边颜色为2,那么此时u可以和v相连,num[v]就是v保留的路径数,这…
意甲冠军: long long ans = 0; for(int i = 1; i <= n; i++) for(int j = i+1; j <= n; j++) ans += F(i,j); F(i,j)表示i点到j点路径上全部的点权和. 若i->j路径上存在2条相邻边边权同样则 F(i,j) = 0 问:ans的值. int乘法爆掉了我也醉了. .. 思路: 和网上的统计边方法不同,这里是用统计点出现的次数来计算 我们计算每一个点i 出现的次数,则答案就是 i的次数*i的点权 =&…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2544 题目意思:给出 n 个路口和 m 条路,每一条路需要 c 分钟走过.问从路口 1 到路口 n 需要的最短时间是多少. 这题是最短路的入门题,从理解d-i--j---k(wg自创的,呵呵)到默打到修改,搞左两日终于好了,哈哈哈~~~太感动了. 第一次错是 少了Dijkstra()函数中的 for (j = 1; j <= n; j++) . 第二次错是把vis[k=j]=1 写在了 if (!v…
数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 36261    Accepted Submission(s): 21659 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少?…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1972 题目意思:需要模拟打印机打印.打印机里面有一些 job,每个job被赋予1-9的其中一个值,越大表示优先级越高,越早被打印.job这个队列是会向前推进的,如果排在最前面的job优先级最高,那么才打印,否则就把这个job放到队列最后.问给出 m 这个位置的job要经过多长时间才被打印. 规定每次打印时间为一分钟,移动 job到队列最后不占时间. 练开优先队列就继续吧---不过这题不是咯. 仅仅用…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1014 题目意思:给出 STEP 和 MOD,然后根据这个公式:seed(x+1) = [seed(x) + STEP] % MOD,问是否在一个周期里可以产生 0 - mod-1 的数.可以的话输出 "Good Choice", 否则输出 "Bad Choice". 好久以前留下来的问题了,以前觉得题目意思又长,以为是很难的题目......今天看<短码之美>…
题目链接:http://code.hdu.edu.cn/game/entry/problem/show.php?chapterid=1&sectionid=2&problemid=22 题目意思:给出一个数,观察其二进制表示,从右往左看,记录遇到第一个出现1的位置pos,做2 ^ pos 的运算. 这几天杭电的告示:Exercise Is Closed Now!  再加上想用一些简单的题目来调剂一下,因此就做ACM Steps  吧. 用了递归的方法来做. #include <ios…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1232 并查集入门题.最近在学并查集,它无非包括三个操作:make_set(x).union_set(x, y)和find_set(x). make_set(x)的作用是使得每一个成员x自成一个只包含x的集合. union_set(x, y)的作用是使x和y合并成为一个新的集合,确定x和y的连通性. find_set(x)则是查找到x的祖先,这里用set[i]表示元素 i  的祖先,换句话说就是,包含…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1050 这道题目隔了很久才做出来的.一开始把判断走廊有重叠的算法都想错了.以为重叠只要满足,下一次moving的起始room小于或等于上一次moving的结束room则证明有重复.这样只能保证局部不能同时进行moving,但是根本得不出其他moving哪些是可以同时进行搬动的. 正确的思路是,统计最大的重叠数,再乘以10即可.具体做法:把每个房间之间的走廊作为一个统计单位,当所有的办公桌都搬运完成之后…