1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include<stack> 5 #include<vector> 6 using namespace std; 7 int main() 8 { 9 char str ...
分类:
其他好文 时间:
2020-02-28 22:28:45
阅读次数:
59
"题目链接" 题意:给你一棵树,让你求每个点之间的距离的最短之和 题解:看到最短之和,想到最小生成树,且每条边权不同,最小生成树唯一,就转换问题为,求一棵树上每个点到所有点的距离之和,这就是树形dp,先对一个点跑dfs,求出该点到所有点的距离之和,统计每个点的子树个数,并假设该点为根,再跑一次dfs ...
分类:
其他好文 时间:
2020-02-28 20:45:16
阅读次数:
58
题意:有一个数字,如果是奇数那么*3+1,如果是偶数/2,知道这个数字变成1.问n到m之间需要操作步数最多的数字操作了几步 解:模拟 #include <algorithm> #include <iostream> #include <cstring> #include <cstdio> #incl ...
分类:
其他好文 时间:
2020-02-28 17:20:25
阅读次数:
47
"题目链接" 转换一下问题就是求每个点的最大长度,容易想到树的直径,一个点的最大长度就是他到两个端点长度的最大值,那我们就可以跑3遍dfs,第一遍求出直径的一个点,第二遍求出每个点到这个点的最大距离,第三遍利用第二遍求得的直径的另一点,反向跑,答案就是两者的最大值 这题好像还可以用点分治或者两遍df ...
分类:
其他好文 时间:
2020-02-26 23:23:24
阅读次数:
114
产生冠军 思路:这道题,先读题分析,我们可以知道,为了产生冠军,会进行两两比赛,让我们寻找一种办法判断是否产生冠军,既然提到了方法,那么意味着,必有一个简便方法来判断是否有冠军,因为,两两发生比赛,一个人可能产生多场比赛,但是,我们换成一下思路,什么是冠军,冠军即使唯一没输过的人,所以,当全部人数- ...
分类:
其他好文 时间:
2020-02-26 22:41:20
阅读次数:
55
Ignatius and the Princess IV 先搬中文 Descriptions: 给你n个数字,你需要找出出现至少(n+1)/2次的数字 现在需要你找出这个数字是多少? Input 本题包含多组数据,请处理到EOF: 每组数据包含两行。 第一行一个数字N(1<=N<=999999) , ...
分类:
其他好文 时间:
2020-02-26 16:50:24
阅读次数:
59
新人题:n2的排序就可以过 #include <stdio.h> #include <stdlib.h> int main() { int c,n,i,j,o; float a[1010],b[1010],m,d,e,f; scanf("%d",&c); for(o=0;o<c;o++) { e=0 ...
分类:
其他好文 时间:
2020-02-26 01:39:50
阅读次数:
44
题意:就是连连看,有两个相同的就能消除,再加上两个特别的规定,一是只能从栈顶开始消除,而是两个相同的元素之间距离不能超过6,询问能否消除序列中所有元素。 思路:数据水,贪心就能过,但严谨的考虑,贪心显然不能解决所有问题。这题虽然序列很长,但是状态并不复杂,可以使用滚动的状压dp,然后考虑使用多少位表 ...
分类:
其他好文 时间:
2020-02-25 23:10:17
阅读次数:
60
http://acm.hdu.edu.cn/showproblem.php?pid=3581 题意: 数轴上给出n条线段,m个点,问任意两对点构成的线段被多少条线段包含 枚举给出的线段[x,y] 枚举被包含线段起点[第一个>=x的点,最后一个<=y的点] 被包含线段终点是最后一个<=y的点 差分前缀 ...
分类:
其他好文 时间:
2020-02-25 20:23:35
阅读次数:
56
" HDU 2196 Computer" ~~经发现~~ ,答案就是到直径2个端点距离的较大值。然后先搞出直径,再从直径2端分别开始,求出每个点与它的距离,取较大值。 ...
分类:
其他好文 时间:
2020-02-25 14:50:25
阅读次数:
60