CF
Ainuyu
。。。
展开
-
CF1194D 1-2-K Game(博弈论)
CF1194D 1-2-K Game一道简单的博弈论题首先让我们考虑没有k的情况:1. (n mod 3 =0)因为n可以被分解成若干个3相加而每个3可以被分解为1+2或2+1所以无论A出什么B都有方法应对B胜2. (n mod 3 =1)A可以先选择余数1这样问题又回到了第一种情况AB角色互换A胜3. (n mod 3 =2)与2同理,A先选2即胜而现在多出来的...原创 2019-07-15 11:33:25 · 372 阅读 · 0 评论 -
CF392BTower of Hanoi(记忆化搜索)
CF392B记搜好题预处理题目给出了将一个盘从x移到y的代价(代码中为a[][]),当我们知道这并不是最优的就像最短路floyd一样松弛操作预处理得到两柱之间最优值b[][]for(int i=1;i<=3;i++) for(int j=1;j<=3;j++) scanf("%lld",&a[i][j]),b[i][j]=a[i][j];for(int i...原创 2019-07-24 14:04:09 · 147 阅读 · 0 评论 -
CF140C New Year Snowmen(贪心+优先队列)
CF140C贪心+优先队列贪心策略:每次取出数量最多的三种球,合成一个答案,再把雪球数都-1再插回去,只要还剩下三种雪球就可以不断地合成雪球数用优先队列维护#include <bits/stdc++.h>using namespace std;const int N=1e5+5;int n,a[N],b[N],nm;struct ball{ int i,n...原创 2019-07-25 22:54:38 · 112 阅读 · 0 评论 -
CF175C Geometry Horse(贪心)
CF175C贪心,注意有不少细节,很容易TLE贪心是显而易见的,每次枚举价值最小的物品,进行销毁操作朴素的枚举每一件物品复杂度为O(∑ki)O(\sum k_i)O(∑ki),明显超时我们注意到朴素的+1枚举中有很多情况是重复的,那就可以通过乘法来跳过#include <bits/stdc++.h>#define int long longusing namespac...原创 2019-07-25 23:02:47 · 215 阅读 · 0 评论 -
CF486B OR in Matrix(构造+思维)
CF486B一道有趣的思维题由于or的性质可知只要a[i][j]为1那么b中第i行,第j列将都变成1相反的,如果b[i][j]是0那么a中第i行,第j列都必须是0根据第二个性质我们可以构造出a矩阵但b能否由a反向得到呢?由于or的唯一性,模拟匹配即可,注意代码效率#include <bits/stdc++.h>using namespace std;int n,...原创 2019-07-25 23:08:41 · 144 阅读 · 0 评论 -
CF498B Name That Tune(动态规划dp)
CF498B动态规划f[i][j]表示前i秒时间听了j首歌的概率,则有:f[i][j]=∑f[i−k][j−1]∗(1−pj)k−1∗pjf[i][j]=∑f[i-k][j-1]*(1-p_j)^{k-1}*p_jf[i][j]=∑f[i−k][j−1]∗(1−pj)k−1∗pjk枚举i秒前的每一秒,要求前i-1秒都不跳歌,且在第i秒跳歌这个方程直接转移的时间复杂度为O(NT2)O(...原创 2019-07-26 15:12:20 · 149 阅读 · 0 评论 -
CF650A Watchmen(STL+map)
目录1. 手推公式2.算法3.优化4.补充CF650A Watchmen只有三个map的一篇题解1. 手推公式∣x2−x1∣+∣y2−y1∣=(x2−x1)2+(y2−y1)2|x2-x1|+|y2-y1|=\sqrt{(x2-x1)^2+(y2-y1)^2}∣x2−x1∣+∣y2−y1∣=(x2−x1)2+(y2−y1)2设|x2-x1|=a,|y2-y1|=ba+b=a2+...原创 2019-07-27 19:22:24 · 130 阅读 · 0 评论