441 分钟

一是世界真小 二是终将到来 唯有热爱可抵 xyz的站就当作一个模版??
1.2k1 分钟

在数论中,如果,那么和在模意义下互为乘法逆元,记作 计算逆元方法 拓展欧几里得 long long exgcd(long long a, long long b, long long &x, long long &y)// 拓欧 { if (b == 0) { x = 1; y = 0; return a; } long long d = exgcd(b, a % b, y, x); y -= (a &#x
3.5k3 分钟

A.签到题,用map嵌个结构体。 B.对于满足与即可 C.直接暴力做,但用map被卡常,而数据又有点大,考虑到题面保证给的数据是递增的,用二分查找来判断是否存在。 D.先处理好的逆元env,然后对于每个问询,先算出,然后每次乘于左端逆元与新右端点。需注意 A: struct A { int c,j,z; }; LL t; int main() { ios::sync_with_stdio(false); cin.tie(0); cin>>t; f(sb,1,t){ map<char ,A> m;
2.4k2 分钟

首先想到将各个联通块缩成一个点来解决问题,接下来就是考虑将各个联通块经过变换都变为P态: 一个贪心的想法是将连有三个及以上N态点的P态点删去,同时,然后再加上剩下的N态点数就为答案,但贪心做法并不能达到全局最优,如: 1_P-->2_P; 2_P-->3_N; 3_N-->4_P; 3_N-->5_P; 5_P-->6_N; 5_P-->7_N; 4_P-->8_N; 4_P-->9_N; 4_P-->10_N; 贪心做法为4,而正解应该为3 那么我们接下来应该考虑的是每次操作的影响,对于每次操作,都会使该块与相邻联通块合成