
cf
MatrixYg
暂无
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【cf908D】New Year and Arbitrary Arrangement
1.题目链接。题目大意,给定k,a,b.现在构造一个字符串,每个位置有两种选择,a/(a+b)概率会选择'a',b/(a+b)会选择'b'.当ab这个子序列出现的次数大于等于k次之后就停止构造,问ab这个子序列出现的期望次数。2.还是比较有意思的一道题目,还是求期望,那么一般还是倒着dp.dp[i][j]表示出现了i个a,j个ab子序列的期望。倒着考虑时,转移式很好推出来。...原创 2019-11-21 17:03:56 · 285 阅读 · 1 评论 -
【cf 908B】B. New Year and Buggy Bot
1.题目链接。有人刚入门的学弟问我这个题该咋写,说实话题目长的我都不想看,就看了最后一句话大概猜了题意。2.s长度只有100,答案其实不会超过24.因为4!=24,所以枚举一下阶乘就完事了吧。复杂度O(4!*len(s)).#include<bits/stdc++.h>using namespace std;char mp[60][60];int pos[4] = { ...原创 2019-11-05 23:00:42 · 235 阅读 · 0 评论 -
【cf 1182 E】Product Oriented Recurrence
1.题目链接。构造g(x)=f(x)*c^x.然后发现:g(x)=g(x-1)*g(x-2)*g(x-3).一种类似与线性递推的东西,这个时候,指数是可以线性递推的。也就是g(x)=g(3)^(a(x)*g(2)^(b(x)*g(1)^(c(x)).其中指数,a(x),b(x),c(x)互相独立,并且满足递推:a(x)=a(x-1)+a(x-2)+a(x-3),b,c也是如此。然后矩阵快速幂求出指...原创 2019-06-12 11:02:59 · 462 阅读 · 0 评论 -
【cf 1185 D】 Extra Element
1.题目链接。题目大意:给定一个数组,是否可以删除其中一个元素使其变成等差数列。2.做法很简单,输入进来之后排序,然后统计相邻两项之差。枚举需要删除的数据,动态修改这个map的值,观察它的size即可。#include<bits/stdc++.h>using namespace std;const int N = 2e5 + 10;#define ll long lon...原创 2019-06-20 08:01:12 · 391 阅读 · 0 评论 -
【cf 1176 D】Recover it!
1.题目链接。记录一下每个数出现的次数,倒着扫一遍即可。原因很简单:倒着扫的时候,出现的最大的那个数只有两种情况:1.这个数是一个合数,那么说明它就是原来序列中的数据;2.这个数是一个质数,那么显然,这个数不可能是原来序列中的数,我们找到是谁把它给产生了(这里预处理一下,做一个映射就好),把它加到答案里即可。最后对应位置的标记减一。#include <bits/stdc++.h>...原创 2019-06-14 15:40:18 · 583 阅读 · 0 评论 -
【cf 1176 E】Cover it!
1.题目链接。水题一枚。一遍dfs过程中给所有的点交替编号即可。#include <bits/stdc++.h>const int N = 200200;using namespace std;int n;int m;int a[N];vector < int > v[N];void dfs(int x, int c){ if(a[x]){ ...原创 2019-06-13 21:09:18 · 333 阅读 · 0 评论 -
【cf 1176 c】 Lose it!
1.题目链接。题目大意:给定一个长度为n的数组,数组的元素只有六种情况,问至少移除多少个元素可以使得这个数组成为好的数组。一个好的数组的定义是:首先这个数组的长度是六的倍数,并且可以被分割成m个:4,8,15,16,23,42的序列。注意是序列,不需要连续。2.这个题目是有一点贪心+一点技巧。首先,4选择和它最近的8配对,8选择和它最近的15配对,以此类推。预处理所有的位置,二分查找看看有多少...原创 2019-06-13 20:24:26 · 490 阅读 · 0 评论 -
【cf 550C】C. Divisibility by Eight
1.题目链接。给定一个数字,问是否可以通过删除一些数字使得剩下的数字可以整除8.注意删除之后的数字位置相对不变2.思维题,其实还是蛮好做的。我们保留的数字其实最多只需要三位数,原因很简单,从第四位数到最后一定可以整除。比如:an..a3a2a1。那么这个数可以被写成:an*pow(10,n-1)+an-1*pow(10,n-2).....a3*100+a2*10+a1.对于四位以后的,权值...原创 2019-05-14 21:00:38 · 310 阅读 · 0 评论 -
【cf 1108 C】枚举一下排列
1.题目链接。题目大意,给定一个字符串,这些字符串只有三种字符,“RGB”。可以改变一些位置的字符,使得同一种字符之间下标之间的距离是3的倍数。问最小需要改变的数量和最终改变好的字符串。2.分析一下可知,最后的字符串一定是RGB的某种排列的n倍延申。所以我们枚举一下排列,统计一下哪一种排列吻合的最好即可。#include <bits/stdc++.h>using names...原创 2019-04-30 15:17:14 · 300 阅读 · 0 评论 -
【cf 1144G】贪心选择一下
1.题目链接。题目大意:给定一个序列,这个序列可能是由一个严格单调递增,一个严格单调递减的序列组成。把这两个序列找出来,如果找不出来,输出NO,找出来输出Yes并把分组信息输出。2.这个题其实可以贪心的选择。因为题目种有一个信息很关键,就是序列在合并之后,相对位置不会改变。所以对于每一个元素,我们考虑可以把它放在哪个序列里面,维护一个严格递增的,一个严格递减的。对于任意一个元素,与当前维护的数...原创 2019-04-24 17:34:09 · 172 阅读 · 0 评论 -
【cf 1108 B】multiset
1.题目链接。给你两个数的所有因子,把这个两个数找出来。十分easy,multiset秒之。#include<bits/stdc++.h>using namespace std;int main(){ int n; cin >> n; multiset<int>s; for (int i = 0; i < n; i++) { in...原创 2019-04-28 17:43:00 · 152 阅读 · 0 评论 -
【cf 1133D】注意一下小的细节
1.题目链接。题目大意:给定两个数组,a,b.用a,b构造c。其中c[i]=a[i]*d+b[i],d是任意的。现在让你来选择合适的d,然后使得c中0尽可能的多。求出这个最多的0.2.这个最开始的想法就是对(-b/a)计数,然后发现精度不够。那么就对这个点计数好了,求一下gcd,然后对最简的点计数,注意0的情况特判掉。当然,这不是一个很好的写法,这个题显然是可以把这两个数求完gcd之后哈希掉的...原创 2019-04-25 21:38:37 · 220 阅读 · 0 评论