140 条题解
-
0klv156 LV 8 @ 2009-11-09 21:00:38
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms贪心贪来40,动归出现无限小错误。。。
-
02009-11-06 21:43:39@
kao,最大的三角形难道不能向后么
-
02009-11-06 19:41:50@
const
q=100;var
a:array [1..2*q-1,1..2*q+1] of longint;
b:array [1..2*q-1,1..2*q+1] of boolean;
n,m,i,j,k,l:longint;
s:ansistring;function min(x,y,z:longint):longint;
var
ll:longint;
begin
min:=x;
if min>y then min:=y;
if min>z then min:=z;
end;begin
fillchar(a,sizeof(a),0);
fillchar(b,sizeof(b),false);
readln(n);
for i:=1 to n do
begin
readln(s);
while s[1]=' ' do delete(s,1,1);
while s[length(s)]=' ' do delete(s,length(s),1);
for j:=1 to length(s) do
if s[j]='-' then b:=true;
end;
for i:=1 to n*2-1 do
if b[1,i] then a[1,i]:=1;
for i:=2 to n do
for j:=1 to (n-i+1)*2-1 do
if b then
begin
a:=1;
if (b) and (b) and (b) then
a:=min(a,a,a)+1;
end;
l:=0;
for i:=1 to n do
for j:=1 to (n-i+1)*2-1 do
if (a>l) and (j mod 2=1) then l:=a;
if b[n,1] then a[n,1]:=1;
for i:=n-1 downto 1 do
for j:=1 to (n-i+1)*2-1 do
if b then
begin
a:=1;
if (b) and (b) and (b) then
a:=min(a,a,a)+1;
end;
for i:=1 to n do
for j:=1 to (n-i+1)*2-1 do
if (a>l) and (j mod 2=0) then l:=a;
writeln(l*l);
end. -
02009-10-30 21:20:30@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms我不是大牛,但我也能秒杀,YEAH!
-
02009-10-28 17:52:16@
唉。。就是数组开小了,还用了小号。
-
02009-10-26 19:19:13@
方程很简单,也很经典. 注意要ODD一下.
WA了很久了,今天再做,发现是因为没初始化...当年的习惯不好啊!!! -
02009-10-18 21:39:52@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msO(∩_∩)O哈哈~
1次ac+0ms 心情一天的阴霾全消散了
仔细做还是不难的
思路同 p1057 盖房子
把等边三角形用‘#’补成矩形做
注意上下两个方向 -
02009-10-18 17:30:20@
編譯通過...
├ 測試數據 01:答案正确... 0ms
├ 測試數據 02:答案正确... 0ms
├ 測試數據 03:答案正确... 0ms
├ 測試數據 04:答案正确... 0ms
├ 測試數據 05:答案正确... 0ms
├ 測試數據 06:答案正确... 0ms
├ 測試數據 07:答案正确... 0ms
├ 測試數據 08:答案正确... 0ms
├ 測試數據 09:答案正确... 0ms
├ 測試數據 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗時:0ms下面那个LJ。。。
一次 就A啦。。
var f:array[0..201,0..201]of longint;
g:array[0..201,0..201]of longint;
a:array[1..201,1..201]of longint;
t,n,i,j,ans,kans:longint;
ch:char;
procedure init;
begin
for i:=n downto 1 do begin
for j:=1 to (2*i-1)+(n-i) do begin
read(ch);
if ch='-' then a:=0;
end;
readln;
end;
end;procedure work1;
begin
ans:=0;
if a[1,n]=0 then f[1,n]:=1;
for i:=2 to n do begin
for j:=1 to 2*n-1 do
if a=0 then begin
if (f+1)*2-1ans then ans:=f;
g:=g+1;
end;
end;end;
procedure work2;
begin
fillchar(f,sizeof(f),0);
fillchar(g,sizeof(f),0);
for i:=n downto 2 do begin
for j:=1 to 2*n-1 do
if a=0 then begin
if (f+2)*2-1ans then ans:=f;
g:=g+1;
end;
end;
end;
procedure print;
begin
writeln(sqr(ans));
end;
begin
readln(N);
fillchar(a,sizeof(a),255);
init;
work1;
work2;
print;
end. -
02009-10-18 17:26:46@
編譯通過...
├ 測試數據 01:答案正确... 0ms
├ 測試數據 02:答案正确... 0ms
├ 測試數據 03:答案正确... 0ms
├ 測試數據 04:答案正确... 0ms
├ 測試數據 05:答案正确... 0ms
├ 測試數據 06:答案正确... 0ms
├ 測試數據 07:答案正确... 0ms
├ 測試數據 08:答案正确... 0ms
├ 測試數據 09:答案正确... 0ms
├ 測試數據 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗時:0ms
交了15次 终于A了。
狂错第2个点。。 -
02009-10-18 10:13:07@
要是提高组出这种题。-,-
不过没看几位提到的注意点我一定会WA吧。 - -
第一次交就WA了9个。。。自己脑残了。。。 -
02009-10-17 19:24:41@
记录号 Flag 得分 记录信息 环境 评测机 程序提交时间
R1611171 Accepted 100 From song19931218-
P1063 FPC Vijos Sunny 2009-10-17 19:15:18From Tsuzuki
迎春舞会之集体舞 迎春舞会 系列编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
题目不是很难。。。。
同楼下的想法一样:细节处理很重要。。。
求最大值时,分两种情况:
1。上三角
2。下三角
(对于这两种三角形注意奇,偶判断)
贴个DP方程:
(每一行的第一个三角形的列坐标都处理为1,也可以不这样处理,个人习惯)对于上三角:
F:((i,j)='-'则 a=1,否则a=0)
1: if a=0 then f:=0;
2: if a=0 then f:=1
else f:=min(f,f);
下三角的讨论与之类似,不再重复 -
02009-10-10 22:08:17@
提交了4次才AC!
细节很容易出错var
n,i,j,k,p,ans:longint;
f,g:array[1..200,1..200]of longint;
a:array[1..200,1..200]of char;
b:array[1..200,1..200]of boolean;
function bein(i,j:longint):boolean;
begin
if (in)or(j2*n-i) then exit(false)
else exit(true);
end;
function min(x,y:longint):longint;
begin
if xans) then ans:=find1(i,j);
if ((i+j)mod 2=1)and(find2(i,j)>ans) then ans:=find2(i,j);
end;
write(ans*ans);
end. -
02009-10-07 20:16:48@
...就是这么一道水题阻挡了我刷dp的进度...
第1天:手机刷直接没有dp把每一行的'-'叠加了一遍
if f>f then f:=f+2;这纯属玩笑之举..结果竟然过了4个点..
第2天:想dp...用时2min...
if f=1 then f:=min(min(f,f),f)+1;结果一激动输出打成writeln(max)了...0分...改过之后信心满满...结果wa掉90...第4个点没过...很生气以为又是puppy出问题了...又交了一遍依然90...
看题解发现大牛说需要判断奇偶...于是立刻加入(odd(i+j-1))结果第4个点过了第7个点wa掉...在愤怒中上床...认为今年noip又得悲剧了..
第3天:仔细研究了奇偶性的问题发现原来大牛读入的时候竟然读了空格!赶紧改成(odd(j))结果依然wa掉...无奈中决定开大数组改成[-110..300] of int64;!!!结果AC....厄...好吧我是沙茶... -
02009-10-07 15:17:06@
... 数组开大点 开大点..
Orz -
02009-10-01 20:39:05@
一次Ac三人组舞后,Rp骤降,居然交了四次。
1。题目求人的个数。我交了个边长上去。
2。忽略一个人的情况。
3. 程序的测试信息没有删去。
4. 居然发现题目要求的是穿夏季校服的。倒。
总结: 好好审题,积累Rp,仔细做题。 -
02009-09-20 16:22:58@
忽略了只有一个人的情况,WA了一次,遗憾啊
-
02009-09-19 21:20:06@
上下两遍dp,一次ac
-
02009-09-19 12:15:48@
这题太阴险了,第二组数据三角形中有空格,WA了5次,5次90分
-
02009-09-09 23:48:29@
晕掉了....第一次没注意看题,把两种衣服分别算了一次,80分
第二次不了解要组成三角形,90分
第三次,看了大牛的题解,知道要上下分别搜一次,100分AC
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
var n:longint;a:array[0..100,0..200]of char; fb:array[0..101,0..202]of longint;procedure init; var i,j,t,k:longint;ch:char;begin readln(n); t:=n*2-1; for i:=1 to n do begin k:=(t-2*(n-i+1)+1) shr 1; for j:=1 to k do read(ch); for j:=k+1 to k+2*(n-i+1)-1 do begin read(a); end; readln; end;end;function min(a,b,c:longint):longint;begin min:=a; if min>b then min:=b; if min>c then min:=c;end;procedure find; var k,i,j,t,x:longint;begin fillchar(fb,sizeof(fb),0); t:=n*2-1; for j:=1 to t do begin if a[1,j]='-' then fb[1,j]:=1 else fb[1,j]:=0; end; x:=1; for i:=2 to n do begin k:=(t-2*(n-i+1)+1) shr 1; for j:=k+1 to k+2*(n-i+1)-1 do begin if a='-' then begin fb:=min(fb,fb,fb)+1; end else fb:=0; if (fb>x)and(odd(j-k)) then x:=fb; end; end; if a[n,n]='-' then fb[n,n]:=1 else fb[n,n]:=0; for i:=n downto 1 do begin k:=(t-2*(n-i+1)+1) shr 1; for j:=k+1 to k+2*(n-i+1)-1 do begin if a='-' then begin fb:=min(fb,fb,fb)+1; end else fb:=0; if (fb>x) and(not(odd(j-k))) then x:=fb; end; end; writeln(sqr(x));end;begin init; find;end. -
02009-09-06 13:14:06@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
├ 测试数据 07:答案正确... 0ms
├ 测试数据 08:答案正确... 0ms
├ 测试数据 09:答案正确... 0ms
├ 测试数据 10:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms简单的DP
很纠结。。
简单题交4次才AC。。。第一次。。数组没开到200。。。
第2次。。没考虑顶点的方向。。顶点应该是朝下的。。
第3次。。ODD放错地方了。。。
第4次。。才AC。。。
80——》90——》20——》100。。。。