08 2013 档案

摘要:Problem DescriptionYou are given a array with N nodes. The array nodes are numbered from 1 to N ( represented by a_i ). In the start, the colorof any node in the array is white or black. We define that the "distance" between a and b is min{a_i| a k,初始化时记下在i左侧最近的小于k的数字的位置L[i],同理R[i]。找到L[i]左 阅读全文
posted @ 2013-08-28 11:52 baoff 阅读(188) 评论(0) 推荐(0) 编辑
摘要:题意:给一棵树,每一个结点都有一个信息,每一个时刻,某一对相邻的结点之间可以传递信息,那么存在一个最少的时间,使得所有的节点都可以拥有所有的信息。但是,题目不是求最短时间,而是求最短时间的情况下,有多少种传递方式:某一时刻传递信息的双方不一样则认为是不同的传递方式。容易的出,最短的时间内,当然是每个节点将自己的信息想外传出去一次,并且接受一次信息,也就是树边的2倍【2*(n-1)】。然后可以证明,在最短时间内,所有的传递方式都有一个“信息转换点”——其他节点的信息首先传递到此节点,然后信息再从这个节点向其他节点传递。那么总方案数的计算就是可以枚举每个节点,将这个节点作为根节点,然后求当前情况下 阅读全文
posted @ 2013-08-17 17:57 baoff 阅读(417) 评论(0) 推荐(0) 编辑
摘要:题意: 平面里给出M个三角形, N个圆形, 图形之间两两不相交, 求一个把这些图形围起来周长最小的一个圈的周长~分析:把三角形顶点分解成点, 对圆形求可能的切点:1.点和圆的两个切点, 2.圆和圆的外公切线切点。 然后对所有点求凸包, 处理周长的时候, 如果凸包上两个相邻点在同一个圆上, 则求相应的弧长~。此方法有个trick: 只有一个圆的时候需要特殊处理.#include#include#include#include#include#include#include#include#include#include#include#include#define tree int ... 阅读全文
posted @ 2013-08-16 21:04 baoff 阅读(289) 评论(1) 推荐(0) 编辑
摘要:题目:给一个无向图,其中每个节点都有点权,边也有边权,然后就有2个小朋友开始做游戏了ALICE &BOB 游戏规定ALICE 先行动然后是BOB,然后依次轮流行动,行动时可以任意选取一个节点并获得节点的点权,如果他已经把一条边的2个端点都取了,那么他可以获得那边的边权,如果一条边的二个端点不同的人取了,那么谁也得不到那条变得边权了。 问游戏结束后怎样可以使ALICE得到的权值和减去BOB 的权值和最大,当然二个人都一样足够聪明,即每次行动都会采取最优的策略解法:若没有边权,则对点权从大到小排序即可。。考虑边,将边权拆成两半加到它所关联的两个点的点权中即可。。。因为当两个人分别选择不同的 阅读全文
posted @ 2013-08-11 20:04 baoff 阅读(201) 评论(0) 推荐(0) 编辑
摘要:#include#include#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#define lson oq; q.push(1); while(!q.empty()) { int yu=q.front(); q.pop(); for(int i=0; i=0; i--) printf("%d"... 阅读全文
posted @ 2013-08-07 16:55 baoff 阅读(210) 评论(0) 推荐(0) 编辑
摘要:#include#include#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#define lson on) ans+=n-f[i-1]+1; else ans+=n-f[i-1]; } return ans;}bool check(LL k,LL m){ LL t=log10(k); if(k/f[t]==1&&k%f[t]==0&&t+... 阅读全文
posted @ 2013-08-05 16:06 baoff 阅读(183) 评论(0) 推荐(0) 编辑
摘要:http://www.nocow.cn/index.php/Translate:URAL/1097#include#include#include#include#include#include#include#include#include#include#include#include#define tree int o,int l,int r#define lson oa.d; }} node[M];void update(tree){ if(ql=r) { sum[o]=r-l+1; } else if(sum[o]==r-l+1) ... 阅读全文
posted @ 2013-08-02 16:06 baoff 阅读(220) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示