poj2478
比较简单的树形dp;
定义s[i]为节点i的子树节点数和(包括自身);叶子节点s[j]=1;
s[i]=signma(s[k])+1 (k是i的孩子)
则i满足的条件是 1.s[k]<=n div 2 (k为所有孩子节点)
2.n-s[k]<=n div 2;
由于n比较大,可以考虑用前向星来存储,这题想明白了还是很简单的,最后注意满足条件的节点升序输出;
type link=^node;
node=record
data:integer;
next:link;
end;
var c:array[..] of link;
f,a:array[..] of boolean;
s:array[..] of longint;
i,n,x,y:integer;
w:boolean;
r:link;
procedure add(x,y:integer); //前向星
var p:link;
begin
new(p);
p^.data:=y;
p^.next:=c[x];
c[x]:=p;
end;
procedure treedp(x:integer);
var ch:boolean;
i:integer;
r:link;
begin
ch:=true;
s[x]:=;
f[x]:=true;
r:=c[x];
while r<>nil do
begin
if not f[r^.data] then
begin
f[r^.data]:=true; //前向星是图结构,这里的标记是建立从父节点到子节点的关系
treedp(r^.data);
if s[r^.data]>n div then ch:=false;
inc(s[x],s[r^.data]);
end;
r:=r^.next;
end;
if (n-s[x])>n div then ch:=false;
if ch then a[x]:=true;
end;
begin
readln(n);
for i:= to n- do
begin
readln(x,y);
add(x,y);
add(y,x);
end;
fillchar(f,sizeof(f),false);
fillchar(a,sizeof(a),false);
treedp(); //生成树任意一个节点都可以作为根节点
w:=false;
for i:= to n do
begin
if a[i] then
begin
w:=true;
writeln(i);
end;
end;
if not w then writeln('NONE');
end.
poj2478的更多相关文章
- 【poj2478】 Farey Sequence
http://poj.org/problem?id=2478 (题目链接) 题意 求分母小于等于n的真分数的个数. Solution 现在只能做做水题了,唉,思维僵化. 细节 前缀和开LL 代码 // ...
- POJ2478 Farey Sequence —— 欧拉函数
题目链接:https://vjudge.net/problem/POJ-2478 Farey Sequence Time Limit: 1000MS Memory Limit: 65536K To ...
- poj2478(欧拉函数)
题目链接:https://vjudge.net/problem/POJ-2478 题意:给定n,输出集合中元素的数量,集合中的元素为最简小于1的分数,分子分母均属于[1,n-1]. 思路:理清题意后就 ...
- poj2478 Farey Sequence (欧拉函数)
Farey Sequence 题意:给定一个数n,求在[1,n]这个范围内两两互质的数的个数.(转化为给定一个数n,比n小且与n互质的数的个数) 知识点: 欧拉函数: 普通求法: int Euler( ...
- 【poj2478】Farey Sequence
题意: 求前n项的欧拉函数之和 题解: 预处理出所有欧拉函数 赤裸裸的模版题- - 没什么好说的 代码: #include <cstdio> typedef long long ll; ; ...
- POJ2478 - Farey Sequence(法雷级数&&欧拉函数)
题目大意 直接看原文吧.... The Farey Sequence Fn for any integer n with n >= 2 is the set of irreducible rat ...
- 【POJ2478】Farey Seque
题意: 就是求2~n的所有欧拉函数值的和,这里就用到了快速求欧拉函数的方法.(不能暴力求了,不然必定TLE啊) 说说欧拉筛法,感觉十分机智啊~~ 对于上述代码的几个问题: 1.问:为什么i%prime ...
- poj2478 Farey Sequence 欧拉函数的应用
仔细看看题目,按照题目要求 其实就是 求 小于等于n的 每一个数的 欧拉函数值 的总和,为什么呢,因为要构成 a/b 然后不能约分 所以 gcd(a,b)==1,所以 分母 b的 欧拉函数值 ...
- POJ2478(SummerTrainingDay04-E 欧拉函数)
Farey Sequence Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 16927 Accepted: 6764 D ...
随机推荐
- PHP中刷新输出缓冲,立即输出数据
<script type="text/javascript"> function show_message(message) { document.getElement ...
- double array trie 插入结点总结
双数组Trie树索引的可操作性研究.pdf 提示:任一状态点的移动,会影响其Trie树中父节点的base值的选择以及兄弟结点位置的变动,而兄弟结点的移动又须变更相应的子节点的check值. 设待插入的 ...
- php三维数组去重(示例代码)
php三维数组去重的示例代码. 假设叫数组 $my_array; <?php // 新建一个空的数组. $tmp_array = array(); $new_array = array(); ...
- gets--vs--fgets
gets fget的区别 这两个函数都能从标准的输入流中读取信息,比如从键盘中输入信息,但是有些区别. 使用gets当输入的字符多于预定个数时候,会造成溢出,程序报错. int main(int ...
- phpcms v9 自定义伪静态的分页函数
因为.这个页面还没做好..等做好了..再给大家演示...... 调用方法:$page_attr=pages_open($num[0]['cun'],$get_page,$max_page,'http: ...
- 在SAE上同步djanogo的mysql数据库
折腾了一个下午,终于搞掂了把djanogo应用的mysql数据库导入到SAE上了,归根到底麻烦的根源是SAE限制多多.下面简单记录一下过程以备日后参考使用. 首先还是修改settings.py,把数据 ...
- js 手机端触发事事件、javascript手机端/移动端触发事件
处理Touch事件能让你跟踪用户的每一根手指的位置.你可以绑定以下四种Touch事件: touchstart: // 手指放到屏幕上的时候触发 touchmove: // 手指在屏幕上移动的时候触发 ...
- 【NHibernate】应用层面需要掌握的知识汇总
休息接待区 欢迎加入NHibernate中文社区!在讨论中寻找乐趣!在问题中寻找答案! 旅途站点路线 第一站:熟悉NHibernate NHibernate之旅(1):开篇有益 第二站:接触NHibe ...
- Mac OS X 软件推荐
1. 前言 每个操作系统都有自己的一套软件系统,但是不同的用户却会有不同的需求,系统虽会为用户提供一些基础软件,不过为了能无碍的进入自己的学习和工作状态,总有一些软件是必须安装的,同时这些软件也可以 ...
- 各个浏览器下实现Ajax的JS
var xmlhttpget; try { // Firefox, Opera 8.0+, Safari xmlhttpget = new window.XMLHttpRequest( ...