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

改了好久……

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

题目简化:

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

正解:

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

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

  1. var
  2. n,i,j,len,l,k,ans1:longint;
  3. s,s1,ans2:ansistring;
  4. //read&write:
  5. procedure reads;
  6. begin
  7. readln(n);
  8. readln(s);
  9. s:=s+'+';
  10. end;
  11. procedure writes;
  12. begin
  13. writeln(ans1);
  14. writeln(ans2);
  15. end;
  16. //runs:
  17. procedure runs;
  18. begin
  19. ans1:=1;
  20. ans2:=s[1];
  21. for k:=1 to n do
  22. begin
  23. i:=k;
  24. j:=k;
  25. while (i>1) and (j<n) and (s[i-1]=s[j+1]) do
  26. begin
  27. dec(i);
  28. inc(j);
  29. end;
  30. s1:=copy(s,i,j-i+1);
  31. len:=j-i+1;
  32. if len>ans1 then
  33. begin
  34. ans1:=len;
  35. ans2:=s1;
  36. end;
  37. i:=k;
  38. j:=k+1;
  39. if s[i]=s[j] then
  40. begin
  41. while (i>1) and (j<n) and (s[i-1]=s[j+1]) do
  42. begin
  43. dec(i);
  44. inc(j);
  45. end;
  46. end;
  47. s1:=copy(s,i,j-i+1);
  48. len:=j-i+1;
  49. if len>ans1 then
  50. begin
  51. ans1:=len;
  52. ans2:=s1;
  53. end;
  54. end;
  55. end;
  56. //files:
  57. procedure openfile(s:string);
  58. begin
  59. assign(input,s+'.in');reset(input);
  60. assign(output,s+'.out');rewrite(output);
  61. end;
  62. procedure closefile;
  63. begin
  64. close(input);
  65. close(output);
  66. end;
  67. //main program:
  68. begin
  69. openfile('cheat');
  70. reads;
  71. runs;
  72. writes;
  73. closefile;
  74. 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!

  1. var
  2. f:array[1..3001,1..3001]of qword;
  3. i,j,n:longint;
  4. //files:
  5. procedure openfile(s:string);
  6. begin
  7. assign(output,s+'.txt');rewrite(output);
  8. end;
  9. procedure closefile;
  10. begin
  11. close(input);
  12. close(output);
  13. end;
  14. begin
  15. openfile('yanghui');
  16. for i:=1 to 3001 do
  17. begin
  18. f[i,1]:=1;
  19. f[i,i]:=1;
  20. end;
  21. for i:=2 to 3001 do
  22. for j:=2 to i-1 do
  23. begin
  24. f[i,j]:=(f[i-1,j-1]+f[i-1,j])mod 12345678;
  25. end;
  26. writeln('(');
  27. writeln(f[1,1]);
  28. for i:=2 to 3001 do
  29. begin
  30. if i mod 10<>0 then write(',',f[i,(i+1)div 2]) else writeln(',',f[i,(i+1)div 2]);
  31. end;
  32. writeln(')');
  33. closefile;
  34. end.//创建数据库

至于怎么用,我就不说了

三、投影

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

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

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

题目简化:

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

然后组成题目的图案

最少的输出

正解:

学霸的方法!

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

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

放在一起。

  1. var
  2. a:array[1..10000]of longint;
  3. bz:array[1..10000]of boolean;
  4. w,n,i,j,k,x,y,ans,min,l:longint;
  5. //reads&writes:
  6. procedure reads_runs;
  7. begin
  8. readln(n,w);
  9. for i:=1 to n do
  10. begin
  11. readln(x,y);
  12. while (l>0)and(a[l]>y) do dec(l);
  13. if ((l=0)or(a[l]<y))and(y>0) then
  14. begin
  15. inc(l);
  16. inc(ans);
  17. a[l]:=y;
  18. end;
  19. end;
  20. end;
  21. procedure writes;
  22. begin
  23. writeln(ans);
  24. end;
  25. //files:
  26. procedure openfile(s:string);
  27. begin
  28. assign(input,s+'.in');reset(input);
  29. assign(output,s+'.out');rewrite(output);
  30. end;
  31. procedure closefile;
  32. begin
  33. close(input);
  34. close(output);
  35. end;
  36. //main program:
  37. begin
  38. openfile('skyline');
  39. reads_runs;
  40. writes;
  41. closefile;
  42. 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]}

  1. var
  2. a:array[0..1000]of longint;
  3. f:array[0..1000,0..1000,1..2] of longint;
  4. n,l,i,j:longint;
  5. //min:
  6. function min(a,b:longint):longint;
  7. begin
  8. if a<b then exit(a)else exit(b);
  9. end;
  10. //reads&writes:
  11. procedure reads;
  12. begin
  13. readln(n,l);
  14. for i:=1 to n do readln(a[i]);
  15. end;
  16. procedure writes;
  17. begin
  18. writeln(min(f[1,n,1],f[1,n,2]));
  19. end;
  20. //runs:
  21. procedure runs;
  22. procedure qsort(l,r:longint);
  23. var
  24. i,j,mid:longint;
  25. begin
  26. i:=l;
  27. j:=r;
  28. randomize;
  29. mid:=a[l+random(r-l)];
  30. repeat
  31. while a[i]<mid do inc(i);
  32. while a[j]>mid do dec(j);
  33. if i<=j then
  34. begin
  35. a[0]:=a[i];
  36. a[i]:=a[j];
  37. a[j]:=a[0];
  38. inc(i);
  39. dec(j);
  40. end;
  41. until i>j;
  42. if i<r then qsort(i,r);
  43. if l<j then qsort(l,j);
  44. end;
  45. begin
  46. qsort(1,n);
  47. for i:=1 to n do
  48. begin
  49. f[i,i,1]:=abs(l-a[i])*n;
  50. f[i,i,2]:=f[i,i,1];
  51. end;
  52. for i:=n downto 1 do
  53. for j:=i+1 to n do
  54. begin
  55. f[i,j,1]:=min(f[i+1,j,1]+(a[i+1]-a[i])*(n-j+i),
  56. f[i+1,j,2]+(a[j]-a[i])*(n-j+i));
  57. f[i,j,2]:=min(f[i,j-1,1]+(a[j]-a[i])*(n-j+i),
  58. f[i,j-1,2]+(a[j]-a[j-1])*(n-j+i));
  59. end;
  60. end;
  61. //files:
  62. procedure openfile(s:string);
  63. begin
  64. assign(input,s+'.in');reset(input);
  65. assign(output,s+'.out');rewrite(output);
  66. end;
  67. procedure closefile;
  68. begin
  69. close(input);
  70. close(output);
  71. end;
  72. begin
  73. openfile('ontherun');
  74. reads;
  75. runs;
  76. writes;
  77. closefile;
  78. 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. Java-Class-@I:org.springframework.beans.factory.annotation.Autowired

    ylbtech-Java-Class-@I:org.springframework.beans.factory.annotation.Autowired 1.返回顶部   2.返回顶部 1. pack ...

  2. 创建 Angular 8.0 项目

    创建 Angular 8.0 项目,首先确保已经安装了 nodejs,如果没有安装,请看这篇文章安装:node.js 安装 1.新建一个空文件夹 angularproject,作为工作区 2.安装 A ...

  3. class12_pack_grid_place 放置位置

    其中的部分运行效果图(程序见序号1): #!/usr/bin/env python# -*- coding:utf-8 -*-# ----------------------------------- ...

  4. 完美解决 IE6 position:fixed 固定定位问题

    关于 position:fixed; 属性 生成绝对定位的元素,相对于浏览器窗口进行定位. 元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定. pos ...

  5. 干货:Java技术栈18年02月精彩好文汇总

    一晃眼,一个月过去了,新年也过完了. 一晃眼,又老了一岁了,感觉新的一年压力更大了. 我们也该为这一个月的技术做做汇总了,错过的同学正好可以统一回顾看看,已经看过的同学也可以再温习一下.. Java技 ...

  6. 12-FileZilla-响应:550 Permission denied

    window系统安装FileZilla与虚拟机上的Ubuntu传输文件: 状态:连接正常 问题:传输文件失败 报错:550 Permission denied 解决方法: 这是由于ftp服务器配置的问 ...

  7. API文档管理工具

    系统庞大之后,前后端分离开发,前端调用后端提供的接口,请求协议一般是 HTTP,数据格式一般是 JSON.后台只负责数据的提供和计算,而完全不处理展现逻辑和样式:前端则负责拿到数据,组织数据并展现的工 ...

  8. 面试系列32 集群部署时的分布式session如何实现

    session是啥?浏览器有个cookie,在一段时间内这个cookie都存在,然后每次发请求过来都带上一个特殊的jsessionid cookie,就根据这个东西,在服务端可以维护一个对应的sess ...

  9. Docker学习のWindows下如何访问Docker本身的虚拟机

    获取可访问Docker守护程序的容器 docker run --privileged -it -v /var/run/docker.sock:/var/run/docker.sock jongalla ...

  10. python 的打开、读、写、追加操作

    读f = open('D:\最新全栈python第2期视频教程 全套完整版\day08-python 全栈开发-基础篇\新建文本文档.txt','r') # data = f.read(10000)# ...