acm
velwn
软件工程本科在读,记录学习过程中的收获
展开
-
二分模板题
C. Poisoned Dagger#include <iostream>#include <vector>#include <map>using namespace std;typedef long long ll;ll n, a, b, t, h;int main(){ cin >> t; while (t--) { cin >> n >> h; vector&原创 2021-12-04 16:41:23 · 546 阅读 · 0 评论 -
关于vector的size()的使用问题
int main() { vector<int> a(0); for (int i = 0; i < a.size() - 1; i++) cout << a.size() - 1 << endl;}这里会有个隐藏问题,当vec的size为0时,因为size()函数的返回值是无符号整型,这时vec.size() - 1是一个正数,导致vec[i]的访问越界...原创 2021-11-06 15:50:55 · 482 阅读 · 0 评论 -
逆元的理解
逆元真的难懂先记录一点此时的心得,日后再来修改1.除以一个数等于乘这个数的逆元费马小定律求逆元证明如下:费马小定律:假如p是质数,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p)由费马小定律我们可以想到是不是很像逆元的形式,即:aa^(p-2)≡1(mod p)*也就是说a^(p-2)是a的逆元。即除以a等于乘上a^(p-2)条件:p是质数,且a不能被p整除!!(费马小定律成立条件),复杂度O(log2§)#include<bits/stdc++.h>#de原创 2021-10-21 15:22:51 · 304 阅读 · 0 评论 -
pow函数的范围限制
今天在做一道cf题时偶然发现pow的局限,返回值不够大E1. Rubik’s Cube Coloring (easy version)#include<bits/stdc++.h>using namespace std;typedef long long ll;ll ksm(ll a, ll b) { ll ans = 1; while (b) { if (b & 1)ans = ans*a % 1000000007; a=a*a % 1000000007; b &原创 2021-10-09 18:36:23 · 1857 阅读 · 0 评论 -
Codeforces Round #743 (Div. 2)C.book(邻接表和拓扑排序)
Codeforces Round #743 (Div. 2)C.book#include "bits/stdc++.h"using namespace std;const int maxn = 3e5 + 10;int k[maxn];vector<int> v[maxn];int du[maxn];vector<int> arr;set<int> q, p;//q存储一遍完成的,p存储需要下一次阅读的章节int main() { int t.原创 2021-09-30 15:21:46 · 91 阅读 · 0 评论 -
矩阵快速幂
矩阵快速幂首先是快速幂的两种写法递归Matrix ksm(Matrix A, ll b) { Matrix ans(1); if(b==0)ans=1; else { ans=ksm(mul(A,A),b/2) if(b%2==1)ans=mul(ans,A); } return ans; }非递归Matrix ksm(Matrix A, ll b) { Matrix ans(1); while (b) { if (b &原创 2021-08-11 20:30:15 · 55 阅读 · 0 评论 -
第一次写线段树,以杭电一道题为例 张煊的金箍棒(2)
**张煊的金箍棒(2)**Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 313 Accepted Submission(s): 125Problem Description张煊的金箍棒升级了!升级后的金箍棒是由几根相同长度的金属棒连接而成(最开始都是铜棒,从1到N编号);张...原创 2021-08-06 21:47:56 · 451 阅读 · 0 评论 -
Codeforces Round #734 (Div. 3) B2 ,D题解
B2. Wonderful Coloring - 2题意: 用k种颜色对n个数字进行染色,要求满足以下条件:1.序列中的每个元素要么是用k种颜色绘制的,要么是没有绘制的;2.每两个被涂成同一颜色的元素是不同的。没有两个相同颜色的值);3.让我们计算k种颜色中每一种颜色中绘制的元素的数量-所有计算的数字必须相等;4.在满足前三个条件的序列的所有着色中,该序列的着色元素总数最大。解法: 将数字push进容器中直到每种不同的数字达到了k ,之后将多出来不能被k整除的数去掉,对容器的数字按从小到大进行转载 2021-07-28 16:53:55 · 75 阅读 · 0 评论 -
vector容器的清空注意
容器清空操作vector的clear()操作不能用于空容器例如#include<bits/stdc++.h>using namespace std;int main(){int n;cin>>n;vector<int>f(n);f.clear();f[0]=1;}这样就会报错(容器下标越界)应改为#include<bits/stdc++.h>using namespace std;int main(){int n;cin&原创 2021-07-28 16:34:34 · 503 阅读 · 0 评论 -
母函数模板分析
本题是最基本的母函数题,为确保作为模板的泛用性,定义了一些本题并不需要的数组原创 2021-05-05 17:02:08 · 78 阅读 · 0 评论 -
二分匹配算法
过山车Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 30 Accepted Submission(s): 7Problem DescriptionRPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐。但是原创 2021-04-18 15:00:23 · 96 阅读 · 0 评论