【洛谷】题解 - P1797 【克鲁斯的加减法_NOI导刊2010提高(05)】
这题是@laybxc这位神犇推荐给我写的。从开始写到AC前后时间跨度一个星期,这是我第一次认认真真写高精,100+的总提交次数应该有15次是我提交的,因为实在太毒瘤了,感谢@laybxc提供的高精度模板让我找出了原本我写的代码中的错误,今天终于AC了,所以发一篇题解庆祝一下。
这道题本质是道模拟题(第一次看的时候还是黄题,现在居然蓝了),主要做法就是遍历字符串并找出每一项的值,然后加起来,用int可以过60分,long long和int128也都只能过60分,显然剩下40分必须用高精了。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 ...
【洛谷】题解 - P4285 【[SHOI2008]汉诺塔】
分享一下蒟蒻我的奇葩做法,因为不会dp……
这道题第一眼看便想到参考P1242 新汉诺塔的递归移圆盘的方法,在递归的过程中判断一下优先级就可以了,模拟即可。
20分的做法:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152#include<iostream>#include<cstdio>using namespace std;const int maxn = 50;int n, last;int pos[maxn], rnk[50], first[5], stk[4][maxn];long long ans;bool check(){ for(int i=2; i<=n; i++) if(pos[i] != pos[i-1] || (pos[i] == 1 || pos[i-1] == 1)) return false; return true;}void getRnk ...