贪心状态模拟
2020100XWH
这个作者很懒,什么都没留下…
展开
-
翻转coin)//位运算
异或0等于自己 异或自己等于0 所以异或奇数次等于自己,偶数次等于0; 题意即可转换为所有数都用奇数次然后各个结果异或起来即为整个异或,一个操作改变一次奇偶性。等价于全部向下的coin每次对不同的k个coin翻转,使全部向上 这里忽略下标直接考虑两个无序队列,奇和偶,每一步翻转k个,从奇中翻转i个,偶中翻转k-i个得到新的状态,dp【i】为i个为奇时最小的步数(不一定连续),由此bfs搜索,并用path【】记录路径;路径记录的是传到此位置的原奇数个,算出last到now的差从两个队列中pop和pus原创 2021-09-14 14:43:36 · 49 阅读 · 0 评论 -
状态模拟加贪心
找关键debug别乱搞 #include<bits/stdc++.h> #define xx first #define yy second //pair 成员简化 using namespace std; typedef long long ll; typedef pair <int ,int>pii;//pair const int maxn =1e3+5; pii can[maxn],peg[maxn]; int num[maxn],ans1[maxn*2];/.原创 2021-09-08 22:20:08 · 34 阅读 · 0 评论