摘要: CodeForces 989C #include<iostream> #include<stdio.h> #include<string.h> using namespace std; int a,b,c,d; char mapp[51][51]; int main(){ scanf("%d%d%d 阅读全文
posted @ 2019-12-02 16:52 helman78 阅读(197) 评论(0) 推荐(0) 编辑
摘要: CodeForces - 1250A 这道题会根据a数组直接对a[i]进行操作,可能与前面交换,可能位置不变。 然后要你求出每个值最小和最大的位置 都说做题前要分析,但是我看了几遍还是没想到用什么算法简单 但其实是我不会分析 因为模拟也是种做法,并且按题意模拟的话,也不过是遍历a数组的操作,仅仅O( 阅读全文
posted @ 2019-11-20 20:01 helman78 阅读(137) 评论(0) 推荐(0) 编辑
摘要: CodeForces 1252A 题意是找到一个1~N的排列B,使得排列A和排列B的每个数的差的绝对值大于等于N 原本想的是将原排列逆序输出应该可以满足要求 然后就WA在第六个点。后来想想132这个排列的逆序231,dif只有2<3 然后第二个思路就是将较大的数和较小的数依次交换,最后过了 #inc 阅读全文
posted @ 2019-11-16 20:36 helman78 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题目链接 用一个差分数组d A能看见B或者是B能看见A (假设A<B)都说明A+1比A矮,B比B-1高,即d[a+1]--,d[b]++ 但为什么不说B-1比B矮呢,这样就是d[a+1]--,d[b-1]--了 我认为啊,因为最后K的高度是要由sigma d[i] 1<=i<=K 加起来的 每次操作 阅读全文
posted @ 2019-08-16 20:32 helman78 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 题目链接 用一个sum[i][j]表示前i行前j列所有元素之和 当i>=x&&j>=y时,我们可以在前i行前j列找到满足大小的矩阵 由于我们i和j是从小到大找,所以每次找以a[i][j]作为右下角的目标矩阵来作比较 这样就能不重不漏了 题目代码 阅读全文
posted @ 2019-08-16 20:07 helman78 阅读(270) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目代码 阅读全文
posted @ 2019-08-15 16:30 helman78 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 题目链接 n对新娘新郎有m个新郎找错了 也就是说有n-m对新娘新郎找对了,然后有m对新娘新郎错排 所以预处理算一下组合数和错排 然后c[n,n-m]*d[m]就行了 题目代码 注意开long long 哦 阅读全文
posted @ 2019-08-15 16:17 helman78 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 题目链接 题目要你求sigma gcd(i,N) 1<=i<=N 首先要知道一个式子gcd(i,N)=p => gcd(i/p,N/p)=1 以N=12举例 gcd=1的个数就是与12互质的数字的个数,也就是12的欧拉函数值,12与1,5,7,11的gcd gcd=2的个数包含了12/2=6的欧拉函 阅读全文
posted @ 2019-08-14 20:38 helman78 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题目链接 计算gcd(x,y)为素数的(x,y)有多少对 首先有一个必要的式子,gcd(x,y)=素数p => gcd(x/p,y/p)=1 所以若y>x,在确定y的情况下,所有满足与y/p互质的数的个数,即y/p的欧拉函数值 所以我们可以先筛一遍欧拉函数,并求前缀和,方便之后使用 这样sum[n/ 阅读全文
posted @ 2019-08-14 19:25 helman78 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 题目链接 这道题可以发现一个规律,那就是牌x的位置 f[x]=x*2^m%(n+1)=l 也就是x*2^m≡l mod(n+1) 2^m与(n/2+1)^m在mod n+1 条件下互为逆元 所以x≡l*(n/2+1)^m 我们知道l,n,m,所以反手就是一个快速幂 不过这道题很坑,要用到快速乘,不然 阅读全文
posted @ 2019-08-14 18:50 helman78 阅读(95) 评论(0) 推荐(0) 编辑