错因总结
P1530 [USACO2.4] 分数化小数 Fractions to Decimals
由于用double会爆精,我们只好进行手动的除法模拟。有些答案的长度超过了,所以不能用数组模拟,因为int类型数组开会爆空间 。所以我们得用字符串模拟存储除法答案(因为字符是比int省空间的)。
如果有余数与之前的相同,那么之前余数作为被除数算出的商的位置直到算出这个余数的商的位置就是这个小数的循环节
注意76个字符换一行,不要忘记记上整数部分、小数点和小括号!
P1209 [USACO1.3] 修理牛棚 Barn Repair
我们考虑,如果第一头牛在,最后一头牛在。我们先考虑,把这个这一段放置一整个木板,显然这是最不优秀的方法。因为我们只用了一个木板。我们考虑这一段内,有些两头牛之间的一段牛棚都没有牛,那么我们把原先的一整个木板拆成两个,就可以使得这一个没有牛的区间不放木板,从而节省了长度。所以就相当于,每多一块木板,就能使得区间内一段没有牛的部分,可以不覆盖木板。我们就对所有没有牛的区间排一个序,然后优先去删掉较大的,删m-1个即可。
但是注意题目中输入的a数组可能无序,需要排序后使用
P2845 [USACO15DEC] Switching on the Lights S
BFS,使用普通队列,但是扩展能向着那走的区域,而只有队列全部都不能到达的时候才退出
P2851 [USACO06DEC] The Fewest Coins G
形式化题意:怎样拼凑出两段线段,且它们的长度之差等于T
Jone: | 多重背包 |
---|---|
老板: | 完全背包 |
两个人分别做到就行了
P1215 [USACO1.4] 母亲的牛奶 Mother’s Milk
暴力DFS 因为牛奶的总量是不变的,所以可以用a,b中的牛奶量做状态,初始状态是(0,0),每次只能有6种选择,a倒b,a倒c,b倒a,b倒c,c倒a,c倒b。用一个数组判重,记录c中所有可能值(=true表示c中可能出现i),如果当前状态是(0,x),那么=true,最后输出s中所有true的就可以了。 用也行,也就是说三维的也行。
P2771 [USACO16JAN] Build Gates S
DFS暴力标记找有多少个联通块,再将数量减一就行了
P2296 [NOIP2014 提高组] 寻找道路
- 读入数据,并建立正向和反向边。
- 从终点反向BFS,求出所有的自己可以到达终点的点。
- 对每个点判断是否满足自己指向的节点都可以到达终点。
- 从起点正向BFS,只经过自己指向的节点都可以到达终点,求出最短路径。
P2340 [USACO03FALL] Cow Exhibition G
表示前i只奶牛中,总智商为j时情商的最大值
第i只奶牛不参加会展:
第i只奶牛参加会展:
=max(, )
P5116 [USACO18DEC] Mixing Milk B
inline in(int &a,int &b,int top_b)
-> inline in(int &a,int &b,int top_b)
100pts->0pts!
P5119 [USACO18DEC] Convention S
漏掉了t[i]-last_run>k
,就100pts->20pts
P5121 [USACO18DEC] Mooyo Mooyo S
bool vis2[100+100][10+100];
->bool vis2[1000+100][10+10];
100pts->0pts
P3115 [USACO15JAN] Cow Routing S
SPFA模板+卡常
……………………………………………tnnd,不想写了………………………………………
P5660 [CSP-J2019] 数字游戏
不会有人还错这道题吧……
P5661 [CSP-J 2019] 公交换乘
暴力小模拟
P5662 [CSP-J2019] 纪念品
把今天手里的钱当做背包的容量,
把商品明天的价格减今天的价格当成它的价值,
每一天结束后把总钱数加上今天赚的钱,直接写背包模板即可。
P5663 [CSP-J2019] 加工零件
这道题的时限并不紧,并且dijkstra细节太多,bfs实现的最短路就行了
我们要对每个点求一遍奇数路径,和偶数路径(要特判0)。