置顶:OIBH 上某人签名(2008-07-06 21:40)
痛楚—— 依然证明着我还没被环境摧残到麻木;
痛哭—— 被现实称做一钱不值的脏土外加废物;
痛苦—— 就像是被遗忘的角落是我莫大的耻辱;
痛诉—— 我向天空呐喊着还要给我几分残酷!
天下风云出我辈,未入江湖岁月催。金银铜铁谈笑间,不如月赛挂一回。提剑跨骑狂提交,WA题如山鸟惊飞。校赛如潮人如水,只叹final几人回。
poj3368 WA AC(2008-07-25 14:36)
poj3368 先测了4以内所有排列和询问。
仍找不到错。
但测了
20 1000
1 1 1 1 1 1 1 7 7 7 7 7 5 5 5 5 4 4 4 4
1 20
后
output wrong answer
11
单步调试时,
发现maketree写错了,
左和右打反了
然后找那一段错了就重新input,只输入那一段
bingo
晕,还是有错。
多组数据,但是我没有加fillchar,
这是不对的。
....
fillchar(a,sizeof(a),0);
打成了
fillchar(b,sizeof(b),0);
.....
still wa
===============================================
const maxvalue=200002;
maxn=200001;
maxnum=sqr(10000);
var x:array[0..maxn] of longint;
a,b,leftfre,rightfre,fre:array[0..maxn*3] of
longint;
n,m,i,j,k,leftfrefre,rightfrefre,frefre:longint;
function min(a,b:longint):longint;
begin if a<b then min:=a else min:=b; end;
一道网络流算法的改进(2008-07-17 23:27)
就是那种几个机器人在棋盘上从左上角出发捡垃圾的题,
就是那道在清北时我给朱全名举反例的那个题。
网络流算法是把每个格子看成一个点,。。。
如果棋盘较大,而垃圾较少呢?
================================
改进算法:
只考虑那些有垃圾的格子。
若v在u的左上方,则连一条v到u的有向弧,
容量为1,费用为0。
同时,把每个点拆两个,容量为1,费用为1。
求最大费用流即可
5.3 milk4WA(2008-07-17 01:58)
my wrong code
{username:tiancai9
PROG:milk4
LANG:PASCAL
}
const maxn=100;
maxcap=20000;
maxnum=sqr(10000);
var a:array[0..maxn] of longint;
f:array[0..1,0..maxn,0..maxcap] of
longint;
cap,n,i,j,k,ans:longint;
function min(a,b:longint):longint;
begin if a<b then min:=a else min:=b; end;
procedure swap(var a,b:longint);
var temp:longint;
begin temp:=a; a:=b; b:=temp; end;
procedure init;
begin
assign(input,'milk4.in');
assign(output,'milk4.out');
reset(input);
rewrite(output);
read(cap,n);
for i:=1 to n do read(a[i]);
end;
procedure sort;
begin
for i:=1 to n-1 do
for
5.2 wissqu(2)(2008-07-16 22:00)
这个程序是记录下了每个字母可放的位置。
Test 1: TEST OK [4.266 secs, 204 KB]
稍快一点儿
{username:tiancai9
PROG:wissqu
LANG:PASCAL
}
type
node=record
c:char;
x,y:longint;
end;
const dx:array[1..9] of longint=(-1,-1,-1,0,0,0,1,1,1);
dy:array[1..9] of
longint=(-1,0,1,-1,0,1,-1,0,1);
var map,old:array[0..5,0..5] of char;
cover:array[0..5,0..5,'A'..'E'] of byte;
ans:array[1..16] of node;
remain:array['A'..'E'] of byte;
v:array[1..4,1..4] of boolean;
5.2 wissqu(2008-07-16 21:45)
晕,竟然靠卡常数通过
Executing...MAINTENANCE IN PROGRESS... errors are likely Test 1: TEST OK [4.709 secs, 204 KB]
{username:tiancai9
PROG:wissqu
LANG:PASCAL
}
type
node=record
c:char;
x,y:longint;
end;
const dx:array[1..9] of longint=(-1,-1,-1,0,0,0,1,1,1);
dy:array[1..9] of
longint=(-1,0,1,-1,0,1,-1,0,1);
var map,old:array[0..5,0..5] of char;
cover:array[0..5,0..5,'A'..'E'] of byte;
ans:array[1..16] of node;
最长上升子序列的贪心算法(转)(2008-07-15 10:37)
如果noi没挂的话,以后学了c,
再研究
我用的二分实现的所以时间复杂度是O(nlogn)
谁看得出来为什么是贪心吗?话说这是pku1631
#include
using namespace std;
int const maxn = 40000 + 5;
int a[maxn], b[maxn];
void solve(){
int n;
scanf('%d',&n);
for (int i = 0 ; i < n; i++) scanf('%d',&a[i]); int t = 0;
b[0] = a[n - 1]; for (int i = n-2; i>=0; i--)
if (a[i] < b[t]) b[++t] = a[i]; else { int l = 0, r = t; while
(r > l){
int m = (l + r) / 2;
if (a[i] >= b[m]) r = m; else l = m + 1;
}
b[l] = a[i];
}
printf('%d\n',t+1);
}
int main(){
int t;
for (scanf('%d',&t); t >
部分贪心 busses(2008-07-14 11:31)
最小乘车费用
源程序名 BUSSES.???(PAS,C,CPP)
可执行文件名 BUSSES.EXE
输入文件名