前言:不要被標題所迷惑!也不要被我的話所迷惑!
p1023 稅收與補貼問題
:稅收與補貼問題題解
p1031 均分紙牌
總:這個……真的是模擬了。
var
n,i,s,ans:longint;
a:array [1..10001] of longint;
begin
readln(n); s:=0;
for i:=1
to n do
begin
read(a[i]);
s:=s+a[i];
end;
s:=s div n;
ans:=0;
if a[1]<>s then
begin
if a[1]then
begin a[2]:=a[2]-(s-a[1]); a[1]:=s; end
else
begin a[2]:=a[2]+(a[1]-s); a[1]:=s; end; inc(ans); end;
if a[n]<>s then
begin
if a[n]then
begin a[n-1]:=a[n-1]-(s-a[n]); a[n]:=s; end
else
begin a[n-1]:=a[n-1]+(a[n]-s); a[n]:=s; end; inc(ans); end;
for i:=2
to n-1
dobegin
if a[i]<>s then
begin
if a[i]then
begin a[i+1]:=a[i+1]-(s-a[i]); a[i]:=s; end
else
begin a[i+1]:=a[i+1]+(a[i]-s); a[i]:=s; end; inc(ans); end;
end;
write(ans);
end.
p1042 桌球
總:懷念小學,那時用字串寫,坑了我啊(忘了怎麼坑的)。
這題……又是模擬。
var
a:array [1..1000001] of char;
i,j,k,n,w,l,w1,l1:longint;
begin
repeat
i:=i+1;
read(a[i]);
until a[i]='e';
i:=0;
repeat
i:=i+1;
if (a[i]='w') or (a[i]='l') then
begin
if a[i]='w'
then inc(w)
else inc(l);
if ((w>=11) or (l>=11)) and (abs(w-l)>=2) then
begin
writeln(w,':',l);
w:=0; l:=0;
end;
end;
until a[i]='e';
writeln(w,':',l);
writeln;
i:=0; w:=0; l:=0;
repeat
i:=i+1;
if (a[i]='w') or (a[i]='l') then
begin
if a[i]='w'
then inc(w)
else inc(l);
if ((w>=21) or (l>=21)) and (abs(w-l)>=2) then
begin
writeln(w,':',l);
w:=0; l:=0;
end;
end;
until a[i]='e';
write(w,':',l);
end.
p1086 花生採摘
總:貪心策略,先拿大的。
var
m,n,k,nm,ans:longint;
x,y,a:array [0..401] of longint;
procedure
init;
var i,j,o:longint;
begin
readln(m,n,k);
for i:=1
to m do
for j:=1
to n do
begin
read(o);
if o>0
then
begin
inc(nm);
x[nm]:=i; y[nm]:=j;
a[nm]:=o;
end;
end;
end;
procedure
pd;var
i,j,t:longint;
begin
for i:=1
to nm do
for j:=1
to nm do
if a[i]>a[j] then
begin
t:=a[i]; a[i]:=a[j]; a[j]:=t;
t:=x[i]; x[i]:=x[j]; x[j]:=t;
t:=y[i]; y[i]:=y[j]; y[j]:=t;
end;
end;
procedure
main;
var i:longint;
begin
ans:=0; y[0]:=y[1];
if k<>0
then
for i:=0
to nm do
if k>=abs(x[i]-x[i+1])+abs(y[i]-y[i+1])+1+x[i+1] then
begin
k:=k-abs(x[i]-x[i+1])-abs(y[i]-y[i+1])-1;
ans:=ans+a[i+1]
endelse
break;
write(ans);
end;
begin
init;
pd;main;
end.
p1098 字串的展開
總:就是判斷輸出啊。
var
s,s1,s2:ansistring;
i,j,n,m,x,y,z:longint;
procedure
hjy(o:longint);
var i,j:longint;
begin
s1:=''; s2:='';
if ord(s[o-1])>=ord(s[o+1]) then
exit;
if ord(s[o-1])+1=ord(s[o+1]) then
begin
delete(s,o,1);
exit;
end;
for i:=ord(s[o-1])+1
to ord(s[o+1])-1
dofor j:=1
to y do
s1:=s1+chr(i);
if x=2
then
for i:=1
to length(s1) do
if (s1[i]>='a') and (s1[i]<='z') then s1[i]:=chr(ord(s1[i])-32);
if x=3
then
for i:=1
to length(s1) do
s1[i]:='*';
if z=2
then
begin
for i:=1
to length(s1) do
s2:=s2+s1[length(s1)-i+1];
s1:=s2;
end;
delete(s,o,1); insert(s1,s,o);
end;
begin
readln(x,y,z);
readln(s);
n:=length(s);
i:=2; s:=s+'+';
while s[i]<>'+'
dobegin
if (s[i-1]<>'-') and (s[i+1]<>'-') then
if (s[i]='-') and (((ord(s[i-1])>=97) and (ord(s[i+1])>=97)) or ((ord(s[i-1])<=57) and (ord(s[i+1])<=57))) then
hjy(i);
inc(i);
end;
delete(s,length(s),1);
writeln(s);
end.
普及練習場之排序
題目提供者ccf noi 評測方式雲端評測標籤noip普及組2006 難度入門難度 時空限制1000ms 128mb 提交 題解 明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性,他先用計算機生成了nn個11到10001000之間的隨機整數 n 100 n 100 對於其中重複的數字,只...
普及練習場之排序
p1177 模板 快速排序 總 看題目,模板啊!var n,i longint a array 1.100001 of longint procedure qsort l,r longint var i,j,temp,key longint begin if l r then exit i l j ...
洛谷試煉場 普及練習場 貪心
1.p1090合併果子 noip2004 優先佇列 貪心 題目鏈結 題目鏈結 2.p1181數列分段 貪心 題目鏈結 蒟蒻題解 3.p1208 usaco1.3 貪心 題目鏈結 蒟蒻題解 4.p1223排隊接水 貪心 題目鏈結 蒟蒻題解 5.p1094紀念品分組 noip2007普及 貪心 題目鏈結...