2016.10.5初中部上午NOIP普及组比赛总结

这次的题目出得挺有质量的。但我觉得我更应该努力了。


进度

比赛:0+20+0+0=20

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


kk的作业

这题我错得……文件输入输出……别提了,听题!

题目简化

上一行的数之积/下一行的数之积

不能用小数,用分数(记得化简)。

接输出’0’+#13+’1’

暴力地把分子和分母分别乘起来。

然后除以它们的最大公因数(gcd)

也就是约分。

后来感觉会爆。

所以我后来又改了一种方法:

每次两边都分别给fz(分子)和fm(分母)乘一个,

然后就约分。

但我感觉需要高精度除法,所以没做高精度。

错因

文件输入输出。

变量超出范围。

正解

我很快改好这题了。

其实可以把那些数存在数组里,然后两两约分。

最后才用高精度乘法把它们一个一个地乘出来。


zy的秘密

丢了40分。

题目简化

单源最短路径问题。

可答案要求dis数组里除maxlongint之外最大的。

比赛思路

我一开始不知道这是最短路径,

用了递归60分。

后来担心爆栈,

我就把它改成宽搜了。

却因为一些细节,我的宽搜20分。

40分没了。

错因

递归时超。

正解

可以用SPFA算法做。

也可以像我这样宽搜。


zy送画

打了好久的爆搜……事实证明打爆搜很复杂……

题目简化

两个人从左上角走到右下角。

中间不许重复。

问中间经过的数最大和。

比赛思路

一个矩阵变成两个矩阵,一个在左上,一个在右下。

求出对应点,bz时就两个一起标。

然后爆搜……

错因

时间不够,没编完。

正解

设f[i1,j1,i2,j2]为第一人到(i1,j1),第二人到(i2,j2)时的最大和。

方程不用说了,有几个方向能够过来。


wd的假日

一开始以为是什么背包。最后慌慌忙忙打了爆搜,结果……

文件输入输出,还漏了些细节。

题目简化

有一个人,有很多的工作,

至少做m个工作。每做一个工作,就会得到一些钱。

但打游戏也可以赚钱,有一些时间必须要打游戏。

比赛思路

想了很久背包,

最后慌忙地打上爆搜。

错因

漏了一些细节。

正解

递归就行了,

不需要加记忆化。


题外话

1. 这次的题虽然有难度,但也好消化。

2. 好开心!我猛地发现我通过第二题推出了SPFA!还是我自己推出的!别人讲时太复杂了,我听不懂。但因为这道题是单源的,我甚至不知道是最短路径问题,居然通过爆搜推出SPFA!当我检查时才发现!(也许是因为这题比较有针对性吧)。

SPFA:

Program SPFA;
const
max_data=100000;
var
n,m,i,j,x,y,ans,head,tail:longint;
a:array[1..1000,1..1000]of longint;
d:array[1..max_data]of longint;
dis:array[1..1000]of longint;
bz:array[1..1000]of boolean;
procedure read_;//读入
procedure init;//初始化
begin
for i:=1 to n do
for j:=1 to n do
a[i,j]:=maxlongint;
for i:=1 to n do a[i,i]:=maxlongint;
for i:=1 to n do dis[i]:=maxlongint;
for i:=1 to max_data do d[i]:=0;
end;
begin
readln(n);
readln(m);
init;
for i:=1 to m do
begin
read(x,y);
readln(a[x,y]);
a[y,x]:=a[x,y];//如果是有向图就别加
end;
end;
procedure write_;//输出
begin
for i:=2 to n do
if dis[i]<maxlongint then write(dis[i],' ')else write('-1 ');
end;
procedure spfa;
begin
head:=0;
tail:=1;
d[1]:=1;
dis[1]:=0;
repeat
inc(head);
if head>max_data then head:=1;
for i:=1 to n do
begin
if not(a[d[head],i]<maxlongint)then continue;
inc(tail);
if tail>max_data then tail:=1;
d[tail]:=d[head];
d[tail]:=i;
if dis[d[head]]+a[d[head],d[tail]]>=dis[d[tail]] then
begin
dec(tail);
if tail=0 then tail:=max_data;
continue;
end else dis[d[tail]]:=dis[d[head]]+a[d[head],d[tail]];
if bz[d[tail]] then
begin
dec(tail);
if tail=0 then tail:=max_data;
continue;
end;
bz[d[tail]]:=true;
end;
bz[d[head]]:=false;
until head=tail;
end;
begin
read_;
spfa;
write_;
end.

2016.10.5初中部上午NOIP普及组比赛总结的更多相关文章

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

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

  2. 2016.10.6初中部上午NOIP普及组比赛总结

    2016.10.6初中部上午NOIP普及组比赛总结 中了病毒--病毒--病毒-- 进度: 比赛:AC+0+0+20=120 改题:AC+0+AC+20=220 Stairs 好--简--单!递推就过了 ...

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

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

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

    2016.10.29初中部上午NOIP普及组 这次比赛算是考的最差的一次之一了,当中有四分之三是DP. 进度: 比赛:没分+0+没分+40=40 改题:AC+0+没分+40=140 TurnOffLi ...

  5. 2016.10.4初中部下午NOIP普及组比赛总结

    2016.10.4初中部下午NOIP普及组比赛总结 这次的题有些水,只是第四题有点坑. 题目: 比赛:AC+0+AC+50=250 改题:AC+AC+AC+50=350 一.Bill 满地都是水 题目 ...

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

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

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

    2016.9.3初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1339 这次真爽,拿了个第四!(我还被班主任叫过去1小时呢!) 进 ...

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

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

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

    2016.9.10初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1340 好不爽!翻车了!不过排名差不多在中间偏上一点, 还好不是 ...

随机推荐

  1. PMP-49个过程快速导览

    启动过程组 名正言顺 人鬼佛神 01 -4.1制定项目章程 -授权PM,启动项目 ● 编写一份正式批准项目并授权项目经理在项目活动中使用组织资源的文件的过程 ● 明确项目与组织战略目标之间的联系,确立 ...

  2. java时间工具类,时间相互转换

    /* * @author XueWeiWei * @date 2019/8/26 16:22 */ package com.nps.utils; import java.text.ParseExcep ...

  3. AtCoder ABC 126F XOR Matching

    题目链接:https://atcoder.jp/contests/abc126/tasks/abc126_f 题目大意 给定两个整数 M 和 K ,用小于 2M 的的所有自然数,每个两个,用这些数排成 ...

  4. 来个我一起学习Python把!!!(新手共同努力)

    <初识Python> 大家好,让我们一起来学习Python,因本人也是个新手但我会把我所学的东西分享出来,并记录自己的经验学习过程,不单单是分享代码,会详细的讲解,如有错误地方希望大家指点 ...

  5. sklearn中模型抽取

    特征抽取sklearn.feature_extraction 模块提供了从原始数据如文本,图像等众抽取能够被机器学习算法直接处理的特征向量. 1.特征抽取方法之 Loading Features fr ...

  6. hashmap1.7的死锁模拟

    package com.cxy.springdataredis.hashmap; import javax.lang.model.element.VariableElement; import jav ...

  7. iOS开发系列-iOS适配

    概述 发布iPhone X 系统版本为iOS11, 由于刘海屏原因需要对新的机型做适配. iPhone X safeArea iOS11苹果提出safeArea替代iOS7引入 topLayoutGu ...

  8. PHP算法之猜数字

    小A 和 小B 在玩猜数字.小B 每次从 1, 2, 3 中随机选择一个,小A 每次也从 1, 2, 3 中选择一个猜.他们一共进行三次这个游戏,请返回 小A 猜对了几次? 输入的guess数组为 小 ...

  9. JS鼠标经过

    <!DOCTYPE html><html><head> <meta charset="utf-8"> <title>菜鸟 ...

  10. PHP Catchable fatal error: Argument 2 passed to Illuminate\Routing\UrlGenerator::__construct()

    laravel 项目的根目录下 运行composer update之后,报了包含 PHP Catchable fatal error: Argument 2 passed to Illuminate\ ...