摘要: 预处理 void init() { pre[0]=1; pre[1]=1; fpre[0]=1; for(int i=1;i<=310000;i++) { pre[i]=pre[i-1]*i; pre[i]%=mod; fpre[i]=qsm(pre[i],mod-2); fpre[i]%=mod; 阅读全文
posted @ 2024-05-15 14:28 yuhao_mice 阅读(30) 评论(0) 推荐(0)
摘要: 题目链接 https://codeforces.com/contest/1957/problem/C 思路其实不难,最重要的就是一个问题,从n个数中两两配对,有多少种配法 首先进行全排列,即N!除去左右相等的即2的n/2次方,再除去彼此之间没顺序(N/2)! 代码 #include<iostream 阅读全文
posted @ 2024-05-15 14:23 yuhao_mice 阅读(37) 评论(0) 推荐(0)
摘要: 题目链接 https://codeforces.com/problemset/problem/1969/C 分析分析样例就可以知道这不是一道贪心题,所以我们可以采用dp 寻常的dp一般都是从左向右,但是这样就会导致变成的值可能在左边,比如 3 2 2 2 1 所以我们换一种dp方式,注意到k的范围很 阅读全文
posted @ 2024-05-15 14:16 yuhao_mice 阅读(101) 评论(0) 推荐(0)
摘要: 题目链接 https://codeforces.com/problemset/problem/1967/B2 做法 设d是a,b的最大公约数,则gcd(a,b)=d, 设a=pd,b=qd; 则 gcd(p,q)=1; 原式=(a+b)|bgcd(a,b) =(p+q)d|qdd =(p+q)|qd 阅读全文
posted @ 2024-05-14 14:48 yuhao_mice 阅读(43) 评论(0) 推荐(0)
摘要: 问题可以转化成一个同余方程ax+by=c(a>0)(如果a是负的,要将a和c都变号) 关于这个方程的求解,可以用拓展欧几里得算法解决 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include< 阅读全文
posted @ 2024-05-10 19:00 yuhao_mice 阅读(22) 评论(0) 推荐(0)
摘要: 这道题主要是考察二分和最短路的考察 只要看到在什么最值中求什么最值,就要往二分方向考虑 这道题的做法就是二分答案 还有一个注意点就是要注意建图,不要弄反、 #include<cstdio> #include<algorithm> #include<cstring> #include<unordere 阅读全文
posted @ 2024-05-10 16:00 yuhao_mice 阅读(19) 评论(0) 推荐(0)