CF
zsyzClb
这个作者很懒,什么都没留下…
展开
-
CF1548D2 Gregor and the Odd Cows (Hard)
题意:网格图上有n个点,不存在三点共线的情况,求面积为整数,内部点的个数为奇数的三角形个数。Solution简单的版本我做出来了,但是难的还差一点,主要是有几个性质没有发现。观摩大佬的做法,结合自己的理解写了一下题解。这道题其实就是一道找性质的题,我们很容易联想到皮克定理,即S=a+b2+1S=a+\frac{b}{2}+1S=a+2b+1。这样就能够把求内部的点转化成求边上的点。然后我们在联系两个公式,一个是S=∣x1∗y2−x2∗y1∣2S=\frac{|x1*y2-x2*y1|}{2}S原创 2021-09-05 20:52:55 · 227 阅读 · 1 评论 -
CF1470B Strange Definition
先把这个公式变形一下lcm(x,y)gcd(x,y)=xgcd(x,y)∗ygcd(x,y)\frac{lcm(x,y)}{gcd(x,y)}=\frac{x}{gcd(x,y)}*\frac{y}{gcd(x,y)}gcd(x,y)lcm(x,y)=gcd(x,y)x∗gcd(x,y)y。然后我们可以发现右边两项是互质的,但是这两项的乘积是一个完全平方数,这说明这两项都是完全平方数,同时就可以知道x,y的每个质因子的幂奇偶性相同。当w=0,我们就可以试着把奇偶性相同的归为一个集合,所以只用求最大原创 2021-03-20 16:39:39 · 133 阅读 · 0 评论 -
CF1493E Enormous XOR
神奇的题目。。。首先很明显,如果l,r最高位不全是1,那么答案肯定每个数位都是1,如样例一对于其他的情况,我们尝试着把r中0的位置给变成1。我把二进制列出来以后,发现只有最低位置才有可能从0变成1(只要r-l>=2就可以)#include<bits/stdc++.h>using namespace std;const int N=1e6+10;int n;char s1[N],s2[N];void add(){ s1[1]++; for(int i=1;i<=n原创 2021-03-20 14:50:11 · 183 阅读 · 0 评论 -
1495D BFS Trees
一道有趣的题目。因为n和m都很小,所以应该是枚举两个点来求方案数。我们先要bfs两次把每个点离i,j的的距离求出来,然后我们可以发现,对于一个点。然后利用转化思想,把两个点变成x和y坐标放到平面直角坐标系上面去。然后自己手玩一下最普遍的生成树,i和j之间有一段路径,这个路径的每个点都有一写子树。把这个图弄到坐标系上面去就是(个数):i处在5的位置,j处在E的位置,那一段1是他们之间的路径,然后?表示接在路径上面的点(因为个数不确定)。然后我们可以发现,路径上面只能是1,因此要特判这种情况。又很原创 2021-03-19 13:09:16 · 172 阅读 · 0 评论 -
Codeforces 1452E Two Editorials
看到数据范围可以想到要用来搞。(时限有2s所以可以再加一个log)这道题的难点在于怎么判断一个人听那一个出题人,不妨画一个图。l1,r1,l2,r2表示选的两段区间(我们令l1<=l2)x,y表示当前的人有兴趣的区间如果y<=r1,那么就一定选第一个人如果x>=l2或者x>r1,那么一定选择第二个人剩下的情况(如图所示)需要列一下公式,我们尝试比较没有选的部分的大小,从而求出是选择听哪一个出题热人,选择第二个出题人,当且仅当y−r1>=l2−xy-r_1>=l原创 2020-12-02 14:48:39 · 188 阅读 · 0 评论 -
Educational Codeforces Round 99 A-G
A这个公式求的是末尾的0不同的个数就是位数#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>#include <vector>using namespace std;void solve() { char s[110]; scanf("%s", s + 1); int ans =原创 2020-12-02 09:59:58 · 149 阅读 · 0 评论