2016.8.16上午纪中初中部NOIP普及组比赛

链接:https://jzoj.net/junior/#contest/home/1334

这次也翻车了,感觉比之前难多了。

辛辛苦苦改完了,太难改了!

进度:

分数:020+AC+010+060=190

改题:AC+AC+AC+AC=AK

一、作弊

链接:https://jzoj.net/junior/#contest/show/1334/0

好坑!把string改为ansistring时50,又改了改,时间超限80

改了好久……

莫名其妙的时超。方法和讲的一样,却时超了

题目简化:

就是在一个长字符串中找出一个最长的回文串!

正解:

枚举回文串的中心,发现比原来最长的长时,

就替代之。要注意一下长度为偶数的情况。

var
n,i,j,len,l,k,ans1:longint;
s,s1,ans2:ansistring;
//read&write:
procedure reads;
begin
readln(n);
readln(s);
s:=s+'+';
end;
procedure writes;
begin
writeln(ans1);
writeln(ans2);
end;
//runs:
procedure runs;
begin
ans1:=1;
ans2:=s[1];
for k:=1 to n do
begin
i:=k;
j:=k;
while (i>1) and (j<n) and (s[i-1]=s[j+1]) do
begin
dec(i);
inc(j);
end;
s1:=copy(s,i,j-i+1);
len:=j-i+1;
if len>ans1 then
begin
ans1:=len;
ans2:=s1;
end;
i:=k;
j:=k+1;
if s[i]=s[j] then
begin
while (i>1) and (j<n) and (s[i-1]=s[j+1]) do
begin
dec(i);
inc(j);
end;
end;
s1:=copy(s,i,j-i+1);
len:=j-i+1;
if len>ans1 then
begin
ans1:=len;
ans2:=s1;
end;
end;
end;
//files:
procedure openfile(s:string);
begin
assign(input,s+'.in');reset(input);
assign(output,s+'.out');rewrite(output);
end;
procedure closefile;
begin
close(input);
close(output);
end;
//main program:
begin
openfile('cheat');
reads;
runs;
writes;
closefile;
end.

二、最大杂志

链接:https://jzoj.net/junior/#contest/show/1334/1

这个水,一不小心就AC了。

我可是用了数据库的哟!

题目简化:

没什么好简化的!

正解:

一看就知道是找规律的题目。

先手动算一些数据,

会发现规律:

如果输入为n,那么输出的结果就为第n+1行的杨辉三角的中间数!

杨辉三角:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

……

求出来后输入后直接输出就行了(数据库)

记得%12345678!

var
f:array[1..3001,1..3001]of qword;
i,j,n:longint;
//files:
procedure openfile(s:string);
begin
assign(output,s+'.txt');rewrite(output);
end;
procedure closefile;
begin
close(input);
close(output);
end;
begin
openfile('yanghui');
for i:=1 to 3001 do
begin
f[i,1]:=1;
f[i,i]:=1;
end;
for i:=2 to 3001 do
for j:=2 to i-1 do
begin
f[i,j]:=(f[i-1,j-1]+f[i-1,j])mod 12345678;
end;
writeln('(');
writeln(f[1,1]);
for i:=2 to 3001 do
begin
if i mod 10<>0 then write(',',f[i,(i+1)div 2]) else writeln(',',f[i,(i+1)div 2]);
end;
writeln(')');
closefile;
end.//创建数据库

至于怎么用,我就不说了

三、投影

链接:https://jzoj.net/junior/#contest/show/1334/2

又是一道考语文的题目!出题者故意说复杂!

我语文差……考试时匆匆输出样例

题目简化:

不好说……一个建筑就是一个个贴着底的矩形,可以重叠的矩形!

然后组成题目的图案

最少的输出

正解:

学霸的方法!

首先那个什么w和下面输入的第一个数是没用的!

然后一层一层弄,如果遇到跟自己同样高的,就标记一下

放在一起。

var
a:array[1..10000]of longint;
bz:array[1..10000]of boolean;
w,n,i,j,k,x,y,ans,min,l:longint;
//reads&writes:
procedure reads_runs;
begin
readln(n,w);
for i:=1 to n do
begin
readln(x,y);
while (l>0)and(a[l]>y) do dec(l);
if ((l=0)or(a[l]<y))and(y>0) then
begin
inc(l);
inc(ans);
a[l]:=y;
end;
end;
end;
procedure writes;
begin
writeln(ans);
end;
//files:
procedure openfile(s:string);
begin
assign(input,s+'.in');reset(input);
assign(output,s+'.out');rewrite(output);
end;
procedure closefile;
begin
close(input);
close(output);
end;
//main program:
begin
openfile('skyline');
reads_runs;
writes;
closefile;
end.

四、除草

链接:https://jzoj.net/junior/#contest/show/1334/3

考试时贪心,居然能拿60分

运气,运气!!

题目简化:

就是在一条线上有很多个点,然后走来走去,

所有点都去一次的最短路程(在这里时间也一样啦)

正解:

上一届钟俊权哥哥的正解

当然是DP

设f[i,j,1]代表走过i~j的所有点,停在i处

f[i,j,2]代表走过i~j的所有点,停在j处

初始化

f[i,i,1]=f[i,i,2]=abs(l-a[i])*n;

状态转移方程:

f[i,j,1]=min{f[i+1,j,1]+(a[i+1]-a[i])*(n-j+i),

f[i+1,j,2]+(a[j]-a[i])*(n-j+i)}

f[i,j,2]=min{f[i,j-1,1]+(a[j]-a[i])*(n-j+i),

f[i,j-1,2]+(a[j]-a[j-1])*(n-j+i)}

输出min{f[1,n,1],f[1,n,2]}

var
a:array[0..1000]of longint;
f:array[0..1000,0..1000,1..2] of longint;
n,l,i,j:longint;
//min:
function min(a,b:longint):longint;
begin
if a<b then exit(a)else exit(b);
end;
//reads&writes:
procedure reads;
begin
readln(n,l);
for i:=1 to n do readln(a[i]);
end;
procedure writes;
begin
writeln(min(f[1,n,1],f[1,n,2]));
end;
//runs:
procedure runs;
procedure qsort(l,r:longint);
var
i,j,mid:longint;
begin
i:=l;
j:=r;
randomize;
mid:=a[l+random(r-l)];
repeat
while a[i]<mid do inc(i);
while a[j]>mid do dec(j);
if i<=j then
begin
a[0]:=a[i];
a[i]:=a[j];
a[j]:=a[0];
inc(i);
dec(j);
end;
until i>j;
if i<r then qsort(i,r);
if l<j then qsort(l,j);
end;
begin
qsort(1,n);
for i:=1 to n do
begin
f[i,i,1]:=abs(l-a[i])*n;
f[i,i,2]:=f[i,i,1];
end;
for i:=n downto 1 do
for j:=i+1 to n do
begin
f[i,j,1]:=min(f[i+1,j,1]+(a[i+1]-a[i])*(n-j+i),
f[i+1,j,2]+(a[j]-a[i])*(n-j+i));
f[i,j,2]:=min(f[i,j-1,1]+(a[j]-a[i])*(n-j+i),
f[i,j-1,2]+(a[j]-a[j-1])*(n-j+i));
end;
end;
//files:
procedure openfile(s:string);
begin
assign(input,s+'.in');reset(input);
assign(output,s+'.out');rewrite(output);
end;
procedure closefile;
begin
close(input);
close(output);
end;
begin
openfile('ontherun');
reads;
runs;
writes;
closefile;
end.

给大家说个经验:如果只输入一个数的,很有可能是找规律。

在一个点里面输入t组数据的,一般都是输入后直接输出的那种。

题外话

1、我猛地发现,自从有新同学来我们教室之后,我都翻车了。希望明天不翻。

2、303的人享受着不被吵的优越的待遇,我也要努力进去!

3、今天是否能坚持AK是一个难题。最后辛苦地AK了。

2016.8.16上午纪中初中部NOIP普及组比赛的更多相关文章

  1. 2016.8.15上午纪中初中部NOIP普及组比赛

    2016.8.15上午纪中初中部NOIP普及组比赛 链接:https://jzoj.net/junior/#contest/home/1333 这次比赛不怎么好,因为这套题目我并不是很擅长. 可同学们 ...

  2. 2016.8.18上午纪中初中部NOIP普及组比赛

    2016.8.18上午纪中初中部NOIP普及组比赛 链接:https://jzoj.net/junior/#contest/home/1336 翻!车!啦!好吧,那是因为大神归来. 进度: 比赛:AC ...

  3. 2016.8.17上午纪中初中部NOIP普及组比赛

    2016.8.17上午纪中初中部NOIP普及组比赛 链接:https://jzoj.net/junior/#contest/home/1335 本来觉得自己能考高分,但只得160分,并列第九.至少又挤 ...

  4. 2016.8.19上午初中部NOIP普及组比赛总结

    2016.8.19上午初中部NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1338 这次总结发得有点晚啊!我在这里解释一下, 因为浏览器的问 ...

  5. 2016.9.15初中部上午NOIP普及组比赛总结

    2016.9.15初中部上午NOIP普及组比赛总结 2016.09.15[初中部 NOIP普及组 ]模拟赛 又翻车了!表示时超和空超很可恨! 进度 比赛:AC+0+0+20=120 改题:AC+80+ ...

  6. 2016.9.24初中部上午NOIP普及组比赛总结

    2016.9.24初中部上午NOIP普及组比赛总结 2016.09.24[初中部 NOIP普及组 ]模拟赛 其实这次我没比赛,早上去参加亲子活动去了. 不过在下午我做完了所有的题,感觉还好. 进度 现 ...

  7. 2016.10.29初中部上午NOIP普及组比赛总结

    2016.10.29[初中部 NOIP普及组 ]模拟赛 做得好爽! 进度: 比赛:35+45+AC+0=180 改题:AC+AC+AC+0=300 幸运的数 有点无语--之前怕超限,还特意利用程序打了 ...

  8. 2016.9.17初中部下午NOIP普及组比赛总结

    2016.9.17初中部下午NOIP普及组比赛总结 2016.09.17[初中部 NOIP普及组 ]模拟赛 最近几次的题目都不是自己擅长的啊... 不过含金量挺高的,也好... 进度: 比赛:0+0+ ...

  9. 2016.10.7初中部上午NOIP普及组比赛总结

    2016.10.7初中部上午NOIP普及组比赛总结 这次的题还可以,重新入了比赛的前十. 进度: 比赛:90+10+70+30=200 改题:AC+AC+AC+AC=AK 找试场 这题很简单,但是被欺 ...

随机推荐

  1. MFC-按行读取TXT数据

    TXT中数据格式如下: 1 23 4 0 4 10 …… 要实现的功能是:定义一个函数,每次调用时从TXT文档中读一个整数 ,赋值给变量.同时,文件位置向下移动一行,以便下次调用时读取下一行的数据. ...

  2. 第36讲 谈谈MySQL支持的事务隔离级别,以及悲观锁和乐观锁的原理和应用场景

    在日常开发中,尤其是业务开发,少不了利用 Java 对数据库进行基本的增删改查等数据操作,这也是 Java 工程师的必备技能之一.做好数据操作,不仅仅需要对 Java 语言相关框架的掌握,更需要对各种 ...

  3. Java:关于main方法的10道面试题

    感觉假期过得好快,东西也丢得快. 假期吃喝玩乐之余也来温故一下Java知识,下面给大家整理了10道Java main方法的经典面试题,都来挑战一下自己的Java基础知识吧! 1.main方法是做什么用 ...

  4. linux 网络监控软件nethogs iftop

    1.nethogs yum -y install nethogs 装上了这个工具之后,使用起来就非常简单了.敲入nethogs 就会给出所有的信息.看下面的例子. root@ubuntu2:~# ne ...

  5. ES相关信息

    漫画版原理介绍 搜索引擎的核心:倒排索引 elasticsearch 基于Lucene的,封装成一个restful的api,通过api就可进行操作(Lucene是一个apache开放源代码的全文检索引 ...

  6. vue SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode

    在使用vue_cli时出现如下错误: 原因是  node  版本太低 应该升级

  7. Git 如何使用ssh上传或者同步/下载项目到github

    上传本地代码及更新代码到GitHub教程 上传本地代码 第一步:去github上创建自己的Repository,创建页面如下图所示: 红框为新建的仓库的https地址 第二步: echo " ...

  8. buff/cache内存占用过多

    通过free -m 查看到 buff/cache的值比较大,导致可使用的内存有120M左右了 通过下面的命令,清除缓存 echo 1 > /proc/sys/vm/drop_caches ech ...

  9. CCPC-WFinal-女生专场

    1001:CCPC直播   字符串处理,几个if语句 1002:口算训练   前缀和处理<=根号n的因数,大于根号n的因数每个数至多有一个,用vector存下每个大因数的位置,map离散化.查询 ...

  10. 专访阿里云MVP黄胜蓝:90 后 CTO花了6年,改变了你日常生活里的这件事

    [黄胜蓝:现任武汉极意网络科技有限公司CTO.高中时期NOIP一等奖保送至武汉大学,大学期间曾指导团队获得世界数学建模大赛金奖,同时负责武汉大学学生校园门户网站的运维工作.于2013年加入武汉极意网络 ...