上一页 1 2 3 4 5 6 ··· 8 下一页

2012年7月16日

noi 2009 二叉查找树 动态规划

摘要: 思路:先把权值离散化按数据值排序sum[i]为前i个节点频度和dp[i][j][w]表示把节点[i,j]合并成一颗根节点权值不小于w的子树所需的访问代价与修改代价的最小和dp[i][j][w]=min(dp[i][k-1][w]+dp[k+1][j][w]+sum[j]-sum[i-1]+K,dp[i][k-1][a[k].weight]+dp[k+1][j][a[k].weight]+sum[j]-sum[i-1](a[k].weight>=w))(i<=k<=j)ans=dp[1][n][1]; 1 #include<iostream> 2 #include& 阅读全文

posted @ 2012-07-16 08:12 myoi 阅读(490) 评论(0) 推荐(0) 编辑

2012年7月15日

noi 2009 诗人小G 动态规划

摘要: 思路:设前i个句子和+i为sum[i]dp[i]表示以第i个为结尾的最小不协调度dp[i]=min(dp[j]+abs(sum[i]-sum[j]-l)^p);我们发现y=a1+abs(x-b1)^p和y=a2+abs(x-b2)^p至多有一个交点所以可以用斜率优化时间复杂度nlogMAXL 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 using namespace std; 6 #define MAXN 110001 7 #def 阅读全文

posted @ 2012-07-15 22:04 myoi 阅读(982) 评论(0) 推荐(0) 编辑

2012年7月11日

noi 2009 变换序列 贪心

摘要: 题意: 1 #include<iostream> 2 #include<cmath> 3 #include<cstring> 4 #include<set> 5 #include<cstdio> 6 using namespace std; 7 #define MAXN 20000 8 int n; 9 int l,r;10 int ans[MAXN];11 bool use[MAXN];12 pair<int,int> part[MAXN];13 int a[MAXN];14 set<int> opt[MAX 阅读全文

posted @ 2012-07-11 22:17 myoi 阅读(244) 评论(0) 推荐(0) 编辑

noi 2010 超级钢琴 划分树

摘要: 题意:小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的音乐。 这架超级钢琴可以弹奏出n个音符,编号为1至n。第i个音符的美妙度为Ai,其中Ai可正可负。 一个“超级和弦”由若干个编号连续的音符组成,包含的音符个数不少于L且不多于R。我们定义超级和弦的美妙度为其包含的所有音符的美妙度之和。两个超级和弦被认为是相同的,当且仅当这两个超级和弦所包含的音符集合是相同的。 小Z决定创作一首由k个超级和弦组成的乐曲,为了使得乐曲更加动听,小Z要求该乐曲由k个不同的超级和弦组成。我们定义一首乐曲的美妙度为其所包含的所有超级和弦的美妙度之和。小Z想知道他 阅读全文

posted @ 2012-07-11 21:24 myoi 阅读(484) 评论(0) 推荐(0) 编辑

2012年7月9日

noi 2010 航空管制 贪心

摘要: 【问题描述】世博期间,上海的航空客运量大大超过了平时,随之而来的航空管制也频频发生。最近,小X就因为航空管制,连续两次在机场被延误超过了两小时。对此,小X表示很不满意。在这次来烟台的路上,小X不幸又一次碰上了航空管制。于是小X开始思考关于航空管制的问题。假设目前被延误航班共有n个,编号为1至n。机场只有一条起飞跑道,所有的航班需按某个顺序依次起飞(称这个顺序为起飞序列)。定义一个航班的起飞序号为该航班在起飞序列中的位置,即是第几个起飞的航班。起飞序列还存在两类限制条件:第一类(最晚起飞时间限制):编号为i的航班起飞序号不得超过ki;第二类(相对起飞顺序限制):存在一些相对起飞顺序限制(a, b 阅读全文

posted @ 2012-07-09 11:58 myoi 阅读(698) 评论(0) 推荐(0) 编辑

2012年7月8日

poj 2104 K-th Number 划分树

摘要: 题意:给一个数列a[1~n],有m个询问每次询问 [l,r]中第k小的数思路:划分树 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 #include<algorithm> 6 using namespace std; 7 #define MAXN 100001 8 struct node 9 {10 int val[MAXN],num[MAXN];11 }tree[20];12 int n,m;13 int sorted[ 阅读全文

posted @ 2012-07-08 21:47 myoi 阅读(203) 评论(0) 推荐(0) 编辑

2012年6月17日

noi 2011 noi嘉年华 动态规划

摘要: 题意:NOI2011 在吉林大学开始啦!为了迎接来自全国各地最优秀的信息学选手,吉林大学决定举办两场盛大的 NOI 嘉年华活动,分在两个不同的地点举办。每个嘉年华可能包含很多个活动,而每个活动只能在一个嘉年华中举办。 现在嘉年华活动的组织者小安一共收到了 n个活动的举办申请,其中第 i 个活动的起始时间为 Si,活动的持续时间为Ti。这些活动都可以安排到任意一个嘉年华的会场,也可以不安排。 小安通过广泛的调查发现,如果某个时刻,两个嘉年华会场同时有活动在进行(不包括活动的开始瞬间和结束瞬间),那么有的选手就会纠结于到底去哪个会场,从而变得不开心。所以,为了避免这样不开心的事情发生,小安要求不能 阅读全文

posted @ 2012-06-17 12:18 myoi 阅读(1545) 评论(0) 推荐(0) 编辑

2012年6月16日

noi 2011 阿狸的打字机 AC自动机

摘要: 题意:阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有28个按键,分别印有26个小写英文字母和'B'、'P'两个字母。经阿狸研究发现,这个打字机是这样工作的:l 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。l 按一下印有'B'的按键,打字机凹槽中最后一个字母会消失。l 按一下印有'P'的按键,打字机会在纸上打印出凹槽中现有的所有字母并换行,但凹槽中的字母不会消失。例如,阿狸输入aPaPBbP,纸上被打印的字符如下:aaaab我们把纸上打印出来的字符串从1开始顺序编号,一直到n。 阅读全文

posted @ 2012-06-16 19:15 myoi 阅读(410) 评论(0) 推荐(0) 编辑

2012年5月31日

最小乘积生成树

摘要: 详情请看:唐文斌在国家冬令营的讲课 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<queue> 6 #include<ctime> 7 using namespace std; 8 #define MAXN 210 9 #define MAXM 11000 10 const long long INF=10000000000000000ll; 11 long long ans=INF; 12 阅读全文

posted @ 2012-05-31 19:37 myoi 阅读(932) 评论(0) 推荐(0) 编辑

2012年5月28日

poj 3659 Cell Phone Network 动态规划

摘要: 题意:求一棵树的最小支配集思路:dpdp[u][0]表示u靠自己dp[u][1]表示u靠父亲dp[u][2]表示u靠儿子v是u的儿子dp[u][0]=sigma min(dp[v][0],min(dp[v][1],dp[v][2]))+1dp[u][1]=sigma min(dp[v][0],dp[v][2]);if 存在 dp[v][0]<=dp[v][2]dp[u][2]=sigma min(dp[v][0],dp[v][2]);elsedp[u][2]=min(dp[v][0]-dp[v][2])+sigma min(dp[v][0],dp[v][2]); 1 #include&l 阅读全文

posted @ 2012-05-28 21:55 myoi 阅读(336) 评论(2) 推荐(1) 编辑

上一页 1 2 3 4 5 6 ··· 8 下一页

导航