摘要: {二维spfa} 1 program sky;{由于编辑器导致的格式问题请多包涵} 2 const 3 maxn = 100000; 4 type 5 rec = record 6 y,w,ww,z,next : longint; 7 end; 8 var 9 x,y,z,w,ww,n,m : longint;10 i,e,tp,tpp : longint;11 bian,jia,h,t : longint;12 q : array[0..maxn+1,1..2] of longint;1... 阅读全文
posted @ 2012-03-18 15:07 SunSky... 阅读(243) 评论(0) 推荐(0)
摘要: 题目描述:(警卫看守)给一棵n个结点的树,要求选中最少的结点使得每个结点被自己或直接相联的结点覆盖树形DP很明显是一颗树,虽然没有跟结点,但可以随便拎起一个来开始DP状态表示f[i,0..2];f[i,0]表示该结点可以被儿子看到的最优解f[i,1]表示该结点自己放置一个装置来进行覆盖f[i,2]表示该结点可以被父亲看到的最优解需要注意的是,f[i,0],f[i,2]都是可以被看到的最优解,而不是说只能被儿子或父亲看到的最优解那么方程即为f[i,0]:=min(f[soni,0],f[soni,1]); //不完全f[i,1]:=min(f[soni,0],f[soni,1],f[soni,2 阅读全文
posted @ 2012-03-16 18:17 SunSky... 阅读(207) 评论(0) 推荐(0)
摘要: 题目描述见tyvjView Code 1 program sky; 2 var 3 i,j,m,n : longint; 4 a : array[0..50,0..50] of longint; 5 begin 6 readln(n,m); 7 a[0,1]:=1; 8 for i:=1 to m do 9 begin10 a[i,1]:=a[i-1,n]+a[i-1,2];11 for j:=2 to n-1 do a[i,j]:=a[i-1,j-1]+a[i-1,j+1];12 a[i,n]:=a[i-1... 阅读全文
posted @ 2012-03-15 12:24 SunSky... 阅读(594) 评论(1) 推荐(0)
摘要: 题目描述略,巨水无比View Code 1 program sky; 2 var 3 n,i,k,kk,lun,ans : longint; 4 c : char; 5 s : string; 6 f,q : array[0..1000] of longint; 7 a : array[0..1000] of string[25]; 8 bj,bjj : boolean; 9 procedure qs(l,r : longint );10 var11... 阅读全文
posted @ 2012-03-15 11:22 SunSky... 阅读(389) 评论(1) 推荐(0)
摘要: 题目描述设phi(W)为以下编码算法的结果:1. 若W的长度为1,则phi(W)=W;2. 设编码单词为W=w1w2…wN,K=N/2(向下取整);3. phi(W) = phi(wNw(N-1)…w(K+1)) + phi(wKw(K-1)…w1)。例如,phi(‘Ok’)=’kO’,phi(‘abcd’)=’cdab’。你的任务是找出字母Wq在加密的单词phi(W)中的位置。输入:给出整数N和q (1<=N<=10^9; 1<=q<=N),N是单词W的长度。输出:输出字母Wq在加密的单词phi(W)中的位置。样例测试:输入:9 4输出:8program sky;va 阅读全文
posted @ 2012-03-14 17:47 SunSky... 阅读(166) 评论(0) 推荐(0)
摘要: 最长串那点事儿pascal(最长上升子序列,最长公共子串,最长公共子序列,最长公共上升子序列)的优化与另类状态表示思路DP中很经典的一类,又分这几小类1.最长(不)上升/下降2.最长公共子序列/串3.最长公共上升子序列算法复杂度,一般就是朴素的n^2或n^3,其实很多优化,最朴素的不再叙述:一:NlongN 最长不降系列F是维护一个单调的序列,f[i]不为0的元素中的最大的i(即队列长度)Program sky;Vari,j,m,n:longint;function find(l,r:longint):longint;{从f中二分查找第一个大/小于(等于)a[i]的数覆盖}beginif l= 阅读全文
posted @ 2011-10-16 18:41 SunSky... 阅读(456) 评论(0) 推荐(0)
摘要: 楚王失弓的寓言 楚恭王喜欢打猎,他拥有一把天下著名的宝弓。有一次,他打完猎准备回宫,就将宝弓交由部下保管。一行人在路上走到一半,宝弓不知传到谁的手上不见了。于是大家分头去找,最后还是找不到。楚恭王度量宽大,就说:“别找了!楚王失弓,楚人得之。” 弓既然在楚国境内遗失,将来捡到的想必是楚国人,那么又何必计较呢? 孔子听说这件事,就说:“何必曰楚?应该说:王失弓,人得之。”这里的“人”是泛指天下人。只要被人捡到,何必计较他是否楚国人呢?由此可见,儒家是主张人文主义的,要普遍肯定每一个人的价值,不因国籍与种族而有任何差别待遇。 接着,老子听说了前面两段话,就说:“何必曰人?应该说:失弓,得之。”弓不 阅读全文
posted @ 2011-08-12 18:13 SunSky... 阅读(232) 评论(1) 推荐(0)
摘要: 题目要求:找一个数字x,使得x^x 的位数大于等于n,(x-1)^(x-1)的位数小于nprogram sky;var n:qword;function doing(l,r:qword):qword; var mid,temp1,temp2:qword; begin if l=r then exit(l); mid:=(l+r+1)>>1; temp1:=trunc(mid*(ln(mid)/ln(10)))+1;{计算位数} temp2:=trunc((mid-1)*(ln(mid-1)/ln(10)))+1;{计算x-1的位数} if (temp1>=n) and (te 阅读全文
posted @ 2011-08-12 12:05 SunSky... 阅读(144) 评论(0) 推荐(0)
摘要: {首先,说明一个问题,一个数的大于它开方的质因数最多一个;等于的可以两个,即它开方得到的数是质数的话,即为该数;问题可以这样描述,当一个数筛去小于等于自身开方的数之后就之多只有一个质因数了,详情看程序不妨反证一下,若有第二个,则仅仅这两个数乘起来就比x大了,所以没有第二个}program sky;{筛选法求素数,分解质因数}var i,j,l,tot,x:longint; xx:array[1..100000,1..2] of longint; a:array[1..500000]of longint; v:array[1..500000] of boolean;procedure init; 阅读全文
posted @ 2011-08-11 21:57 SunSky... 阅读(240) 评论(0) 推荐(0)
摘要: procedure doing(x:longint); begin if x=n+1 then print ; …… …… end; 阅读全文
posted @ 2011-08-10 07:34 SunSky... 阅读(560) 评论(1) 推荐(0)