SPOJ

SPOJ 384 — Any fool can do it (code: FOOL)

Posted on 四月 22nd, 2008.

庆祝一下,这道题AC之后得到了宝贵的0.4分,于是以4.4分的成绩拿到了1000名…整1000名啊…一个不差…截图就不发了…
这道题是一道挺弱智的DP,和冰峰文有些类似,比那个还要简单.dset[l, r]表示从l到r这一段是不是一个set,而dlist[l, r]表示l到r是不是list.然后转移的时候考虑全就可以.其中判断是set,除了特殊情况以外,只要判断l+1到r-1是不是list就行.但注意如果a[l],a[r]不是’{’和’}’,一定不是set.判断是list的复杂些,除了特殊情况(就是atom的情况),还需要判断这一段是不是set(set也是一个list).然后枚举中间的每一位,如果某一位是’,’,那么看它两侧的串是不是两个list,是的话就说明l到r也是list.
实现不难,不过写错了一点,把l+1打成了l+r.winsty说的没错,一定要小心啊…刷1Y率是关键…
{ SPOJ 384; Any fool can do it; FOOL - sqybi’s code - DP}program fool_sqybi;  const    nn = 200;
  var    a: string;    times, cases, n: longint;    dset, dlist: array[1..nn, 1..nn]of longint;
  procedure flist(l, r: longint); forward;
  procedure fset(l, r: longint);    begin      if l = r then begin        dset[l, r] := […]

Read Full Post | Make a Comment ( 2 so far )

SPOJ 297 — Aggressive cows (CODE: AGGRCOW)

Posted on 四月 21st, 2008.

求最大值最小,快排+二分答案.水题,不写题解.
1Y了,比较兴奋.
此题正好练习二分答案.发现在SPOJ上看别人AC哪道就做哪道也不是难事…不过这道题才0.1分…
{ SPOJ 297; Aggressive Cows; AGGRCOW - sqybi’s code - 快排+二分答案}//for my winstyprogram aggrcow_sqybi;  const    nn = 100000;
  var    cases, times, n, m, max, l, r, mid, ans, i: longint;    a: array[1..nn]of longint;
  procedure qsort(l, r: longint);    var      i, j, d, t: longint;    begin      i := l;      j := r;      d := a[(l+r) […]

Read Full Post | Make a Comment ( None so far )

SPOJ 1163 — Java vs C++ (code: JAVAC)

Posted on 四月 21st, 2008.

挺水的题目,不过文字游戏有些多.题解没什么可写的.给几组数据,自己拍去吧.
刚开始WA了N多次,结果把seekEoF改成EoF就AC了.
数据:
输入n_e_e_r_cJAVAjAVAn__e_r_cbad_StyleBad_stylejava__anotherlong_and_mnemonic_identifieranotherExamplec_identifiern_e_e_r_cn__e_r_cnEER_ci_iIi
输出nEERCError!j_a_v_aError!Error!Error!Error!Error!longAndMnemonicIdentifieranother_examplecIdentifiernEERCError!Error!Error!
附代码.
{SPOJ 1163; Java vs C++; JAVAC- sqybi’s code}//for my winstyprogram javac_sqybi;  var    s, ss: string;    ch: char;    upper: array[’a’..’z’]of char;    lower: array[’A’..’Z’]of char;    f1, f2: boolean;    i, n: longint;
  begin    for ch:=’a’ to ‘z’ do begin      upper[ch] := upcase(ch);      lower[upcase(ch)] := ch;    end;
    while not EoF do begin      readln(s);      n := length(s);      if […]

Read Full Post | Make a Comment ( None so far )

SPOJ 1476 — Maximum Profit (code: PROFIT)

Posted on 四月 21st, 2008.

同NOI06最大获利,多组数据.
程序略.
阅读(143 次)

Read Full Post | Make a Comment ( None so far )

SPOJ 839 — Optimal Marks (code: OPTM)

Posted on 四月 21st, 2008.

这道题的解法的确很强大啊,大概意思就是把每个数分为二进制位,然后每一位的xor都不互相影响而且每一位只有0和1两种状态.然后可以求最小割来解题.具体解法见Amber在2007年的论文,请点开页面下载.这道题在论文的第13页,这里不再赘述.
做题时不知怎么心血来潮把31写成30,于是WA了几次(开始还因为数组开小TLE了几次,怎么SPOJ不报RE…).还有就是给出的点的权值有可能是0,所以不能通过判断v1数组来判断某个点是不是给出的(这也是我的flag数组的作用).这道题排在Pascal第11.
SPOJ已经2.8分了,1295名…
{SPOJ 839; Optimal Marks; OPTM- sqybi’s code- 按照二进制位建图,最小切割最大流- Dinic}program optm_sqybi;  const    nn = 500;    mm = 3000;    tt = nn + mm * 2;
  type    TGraph = object      edgeNum, s, t: longint;      adj, next, capa, flow: array[-tt..tt]of longint;      visit: array[0..nn+1]of boolean;      head, place, dist: array[0..nn+1]of longint;      q: array[1..nn+2]of longint;      procedure addEdge(x, y, z: longint);      […]

Read Full Post | Make a Comment ( None so far )

« Previous Entries Next Entries »

Liked it here?
Why not try sites on the blogroll...