03 2012 档案
摘要:每次开randomize(未完待续)skysun原创,http://www.cnblogs.com/skysun
阅读全文
摘要:朴素搜索一条过了,又一道一条过的怎么打得简洁怎么来skysun原创,转载请注明出处,http://www.cnblogs.com/skysunView Code 1 program sky; 2 var 3 i,j,x : longint; 4 n : longint; 5 a : array[0..1001,1..2] of longint; 6 f : array[0..1001] of longint; 7 function max(qq,ww: longint ):longint; 8 begin 9 if qq>ww then ...
阅读全文
摘要:DP啊!!状态f[i,j]表示,当前正在捡起第i个,从前面拿了j个(因为从后面拿了多少可以通过这个算出来)每个状态有两种转移方式,即F[i,j]可能是第i次拿了第j个,或者是拿了第(n-(i-j)+1)个方程即为 f[i,j]:=max(f[i-1,j]+a[n-(i-j)+1]*i,f[i-1,j-1]+a[j]*i);skysun原创转载请注明出处,http://www.cnblogs.com/skysunView Code 1 program sky; 2 var 3 i,j,n : longint; 4 a : array[0..2001] of longint;...
阅读全文
摘要:skysun原创,转载请注明出处一、查找湖南问题(hunan.pas)。有一个含有N×N(N<=20)的大写字母方阵,试编程找出其中隐含的所有“HUNAN”字样,五个字母只能以上下左右方向连续。输入:方阵由文本文件读入,文本文件第一行存放N的值,第二行开始依次存放各行的字母。输出:写入文件中,每一行一个方案,每行内容为方案中依次经过字符的行号和列号,若无法找到,则输出“NOANSWER!”。输入输出举例:输入:input.TXT: 则输出output.TXT6 NO.1(1,2)(2,2)(3,2)(4,2)(4,1)AHUBBJ NO.2(1,2...
阅读全文
摘要:skysun原创,转载请注明出处。http://www.cnblogs.com/skysun题目大意一、分油问题(oil.pas)。设有大小不等的3个无刻度的油桶,分别能盛满X、Y、Z(都小于等于100)升油,初始时其中一个油桶盛满,另外两个为空。现在,要想分出T升油。分油时可把一个桶里的油倒入另外的桶中。设计一种以最少步骤的分油方案。输入:以文件方式输入数据,格式为:第一行:XYZ {设一个油桶已装满油}第二行:T {要分出的目标油量}输出:所需要的步数{原题不是输出步数,由于评测问题……改简单了}很明显是一道搜索题方法一:bfs一般来说,求最小步数都应该用宽搜来解,因为一旦出解就输出,并
阅读全文
摘要:具体解释在代码内区间动归,F[i,j]表示i到j这个区间的最优解,g[i,j]表示这个区间最优解内的情况下的根结点f[i,j]:=max(f[i,k-1]*f[k+1,j]+a[k]),k为区间内枚举k可以恰好为i或j这两个端点,此时需要特殊处理,即价值为f[i,j]:=1*f[i+1,j]+a[i] (k取i时) 1 {加分二叉树} 2 program sky; 3 var {int64} 4 i,j,k,n,tp:longint; 5 g:array[0..31,0..31] of int64;{注意f数组要开int64} 6 f:array[0..31,0..31] of...
阅读全文
摘要:{二维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...
阅读全文
摘要:题目描述:(警卫看守)给一棵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
阅读全文
摘要:题目描述见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...
阅读全文
摘要:题目描述略,巨水无比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...
阅读全文
摘要:题目描述设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
阅读全文

浙公网安备 33010602011771号