2016.10.5初中部上午NOIP普及组比赛总结
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普及组比赛总结的更多相关文章
- 2016.10.7初中部上午NOIP普及组比赛总结
2016.10.7初中部上午NOIP普及组比赛总结 这次的题还可以,重新入了比赛的前十. 进度: 比赛:90+10+70+30=200 改题:AC+AC+AC+AC=AK 找试场 这题很简单,但是被欺 ...
- 2016.10.6初中部上午NOIP普及组比赛总结
2016.10.6初中部上午NOIP普及组比赛总结 中了病毒--病毒--病毒-- 进度: 比赛:AC+0+0+20=120 改题:AC+0+AC+20=220 Stairs 好--简--单!递推就过了 ...
- 2016.10.29初中部上午NOIP普及组比赛总结
2016.10.29[初中部 NOIP普及组 ]模拟赛 做得好爽! 进度: 比赛:35+45+AC+0=180 改题:AC+AC+AC+0=300 幸运的数 有点无语--之前怕超限,还特意利用程序打了 ...
- 2016.11.5初中部上午NOIP普及组比赛总结
2016.10.29初中部上午NOIP普及组 这次比赛算是考的最差的一次之一了,当中有四分之三是DP. 进度: 比赛:没分+0+没分+40=40 改题:AC+0+没分+40=140 TurnOffLi ...
- 2016.10.4初中部下午NOIP普及组比赛总结
2016.10.4初中部下午NOIP普及组比赛总结 这次的题有些水,只是第四题有点坑. 题目: 比赛:AC+0+AC+50=250 改题:AC+AC+AC+50=350 一.Bill 满地都是水 题目 ...
- 2016.9.15初中部上午NOIP普及组比赛总结
2016.9.15初中部上午NOIP普及组比赛总结 2016.09.15[初中部 NOIP普及组 ]模拟赛 又翻车了!表示时超和空超很可恨! 进度 比赛:AC+0+0+20=120 改题:AC+80+ ...
- 2016.9.3初中部上午NOIP普及组比赛总结
2016.9.3初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1339 这次真爽,拿了个第四!(我还被班主任叫过去1小时呢!) 进 ...
- 2016.9.24初中部上午NOIP普及组比赛总结
2016.9.24初中部上午NOIP普及组比赛总结 2016.09.24[初中部 NOIP普及组 ]模拟赛 其实这次我没比赛,早上去参加亲子活动去了. 不过在下午我做完了所有的题,感觉还好. 进度 现 ...
- 2016.9.10初中部上午NOIP普及组比赛总结
2016.9.10初中部上午NOIP普及组比赛总结 链接:https://jzoj.net/junior/#contest/home/1340 好不爽!翻车了!不过排名差不多在中间偏上一点, 还好不是 ...
随机推荐
- PAT_A1053#Path of Equal Weight
Source: PAT A1053 Path of Equal Weight (30 分) Description: Given a non-empty tree with root R, and w ...
- Vmware Centos7 配置静态 ip 和 使宿主机和虚拟机互相 ping 通
NAT 方式1. 配置静态 ipVmware 安装 Centos7 可以参考 https://blog.csdn.net/guo_ridgepole/article/details/78973763 ...
- Soci介绍
soci是一个用C++封装的数据库访问库,目前通过 “前端(应用程序)/核心/后端(数据库适配)”模式支持firebird,mysql,sqlite3,oracle,postgresql,odbc多种 ...
- 学无止境的CSS(xHTML+CSS技巧教程资源大全)
本文里面收集一些有关CSS的技巧.教程.工具和观点等,其中一些你也许早就运用的炉火纯青,也可能有的你听都没听说过.不管是新手还是高手,大家都继续学习吧. 一,Web 标准 要玩游戏,就得先了解规则.要 ...
- Repeater 分页
1.RepeaterDemo_Page.aspx前台代码 <body> <form id="form1" runat="server"> ...
- lnmp高人笔记
http://www.cnblogs.com/qizekai/p/5878774.html http://www.cnblogs.com/qizekai/p/5879461.html
- Extremely fast hash algorithm-xxHash
xxHash - Extremely fast hash algorithm xxHash is an Extremely fast Hash algorithm, running at RAM sp ...
- 学习mysql水平分区和实践笔记
SHOW PLUGINS; sql 可以查看partition的Status 是否是ACTIVE的 使用mydatetime 进行水平分区案例: CREATE TABLE test_users ( ` ...
- Spring Boot环境搭建。
1.环境准备. jdk1.8 idea(如果不会激活可以看另外一篇:https://www.cnblogs.com/joeking/p/11119123.html) 2.打开idea 如果是idea的 ...
- css---过渡天坑
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...