20160901(最大波动)
代码1
1 | //freopen("D://input.txt","r",stdin); |
20160902(火车购票)
代码1
用bool seats[20][6] 来描述每个座位号是否被占,seats[][0] 表示每一排被占了几个座位。对于购票请求,先看有没有一排的空座位数大于等于购票数(空座位数一定连续),否则,就从最小的座位号开始分配。
1 | //freopen("D://input.txt","r",stdin); |
20160903(炉石传说)
代码1
设计一个结构体表示每一方的战斗力,包括英雄和随从的情况,以及是否输掉;
1 | struct Player{ |
有Player players[2] 表示两个玩家,players[0] 表示先手玩家。int playerId=0 表示当前的玩家id,一旦遇到end命令,就将playerId变为对手的。
1 | //freopen("D://input.txt","r",stdin); |
这题我做的有很大问题,可能会出现巨大错误。原因是56行到69行的对postAttack函数放在哪个位置进行处理这个问题变得很糊涂,也犯了很多逻辑错误。正常的做法是,我要将双方的角色生命值都减去后再进行双发角色的postAttack操作(也就是对随从的位置移动操作),还要注意,当攻击对方的英雄时,也就是,arg2=0时,不要对对方进行postAttack操作,因为,我会把[1,7] 位置的数据全部移动到[0,6]位置,这是个很严重的错误。
20160904(交通规划)
代码1
这题是使用dijkstra算法,但是不同的是,每次在选出一个u点时,都要从它的所有最短路径前驱路径点a中,选出使得<a,u> 最小的那个a。因此有set<int> pre[] 来存储最短的<a,u> 的距离。然后将<a,u>累加到结果ans中。
1 | //freopen("D://input.txt","r",stdin); |
最近总是犯小错误,像45行的错误:把v错当成j,真的太低级了;第5行,我想写10005的,结果写成了1005,报了运行错误。