
acm
ZTT张甜甜
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
拓扑排序
例题:确定比赛名次 有N个比赛队(1<=N<=500),编号依次为1,2,3,。。。。,N进行比赛,比赛结束后,裁判委员会要将所有参赛队伍从前往后依次排名,但现在裁判委员会不能直接获得每个队的比赛成绩,只知道每场比赛的结果,即P1赢P2,用P1,P2表示,排名时P1在P2之前。现在请你编程序确定排名。 Input 输入有若干组,每组中的第一行为二个数N(1<=N<=5...原创 2018-07-30 11:08:54 · 164 阅读 · 0 评论 -
欧几里得及其扩展
欧几里得也就是我们说的辗转相除法,用于求最大公约束(辗转相减法也可以求)。 欧几里得 int gcd(int a,int b) { if(b==0) return a; else return gcd(b,a%b); } 这是递归的代码,下面来证明 设c==gcd(a,b); r=a%b; 则 a==x1*c; b==x2*c; r==a-x3*b; (x...原创 2018-08-22 14:46:59 · 144 阅读 · 0 评论 -
乘法逆元与费马小定理
费马小定理: 当p为质数时pow(n,p-1)%p=1; 在求解a/b%m时,可以转化为(a%(b*m))/b,转化过程如下 令k = (a/b)/m(向下取整), x = (a/b)%m; a/b = k*m + x (x < m); a = k*b*m + b*x; a%(b*m) = b*x; a%(b*m)/b = x; 乘法逆元: [ a/b%m = (a%(b*...原创 2018-08-22 14:49:20 · 282 阅读 · 0 评论 -
树的直径
树的直径就是这棵树上存在的最长路径。 求法: 两次dfs或bfs 一. 从任意一点开始,搜索到这个点最长的距离,记录下搜到的点。 假设此树的最长路径是从s到t,我们选择的点为u。反证法:假设搜到的点是v。 1、v在这条最长路径上,那么dis[u,v]>dis[u,v]+dis[v,s],显然矛盾。 2、v不在这条最长路径上,我们在最长路径上选择一个点为po,则dis[u,v]>...转载 2018-08-27 20:22:28 · 228 阅读 · 0 评论 -
异或与
异或与 ^ | & (异 或 与)表示位运算,针对数值进行的运算,例如 3 | 2 、78 & 99,其结果仍然应为值数 || && (且 或)表示逻辑运算,||表示或者的意思,&& 表示并且的意思,例如 33>44 || "abcd"=="abcd",其结果是逻辑值true或false。 |和& ^ ,0和1相或为1,相与...原创 2018-08-21 14:20:50 · 2243 阅读 · 0 评论 -
树状数组
树状数组(Binary Indexed Tree(B.I.T), Fenwick Tree)是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,但是每次只能修改一个元素的值;经过简单修改可以在log(n)的复杂度下进行范围修改,但是这时只能查询其中一个元素的值(如果加入多个辅助数组则可以实现区间修改与区间查询)。 树状数组与线段数有些类似,不过树状数组可以解...原创 2018-08-21 17:49:43 · 137 阅读 · 0 评论 -
欧拉回路
欧拉回路 也就是说一笔画问题,一个能够遍历完所有的边而没有重复的图. 欧拉回路的判定 一、无向图 1. 每个顶点的度数都是偶数,则存在欧拉回路。 2. 一个无向图存在欧拉路径,当且仅当 该图所有顶点的度数为偶数 (回路) 或者 除了两个度数为奇数外其余的全是偶数。 二、有向图(所有边都是单向的) 1. 每个节顶点的入度都等于出度,则存在欧拉回路。 2. 一...原创 2018-09-01 22:10:19 · 600 阅读 · 0 评论 -
寻找字符串
kmp a b a b h j j h a b a b c a b i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 a b a b c j 1 2 3 4 5 a b a b h j j h a b a b c a b i 0 1 2 3 4 5 6 7...原创 2018-04-22 15:08:51 · 155 阅读 · 0 评论 -
筛法求素数
1:普通筛法 筛去所有素数的倍数。 代码: #include<iostream> #include<cstring> #include<cmath> using namespace std; #define ll long long #define maxn 1000003 int vis[maxn]; int prime[maxn]; void pri...原创 2019-02-26 20:17:47 · 172 阅读 · 0 评论 -
离散化
https://blog.youkuaiyun.com/xiangaccepted/article/details/73276826 这篇博客写的简洁易懂,我就记录下来了。转载 2018-08-18 15:49:12 · 552 阅读 · 0 评论 -
矩阵快速幂
基础知识:(会基础的直接看应用部分) (1)矩阵乘法 简单的说矩阵就是二维数组,数存在里面,矩阵乘法的规则:A*B=C,其中c[i][j]为A的第i行与B的第j列对应乘积的和。 矩阵相乘代码: const int N=100; int c[N][N]; void multi(int a[][N],int b[][N],int n)//n是矩阵大小,n<N { memset(...转载 2018-08-15 23:34:15 · 135 阅读 · 0 评论 -
快速幂
求n的l次方,l较大的话。 简单地说就是 2 的1000000次方的话,我们可以求pow(pow(2,2),500000),求pow( pow( pow(2,2),2 ),250000 ). 依次...... 代码。 int power(long long a, int n) { long long ans = 1; while(n &g...原创 2018-08-15 23:15:24 · 134 阅读 · 0 评论 -
模拟立方体
http://acm.hdu.edu.cn/showproblem.php?pid=6330 Problem Description Little Q likes solving math problems very much. Unluckily, however, he does not have good spatial ability. Everytime he meets a 3D ...原创 2018-07-31 17:35:58 · 325 阅读 · 0 评论 -
筛法求素数
输出1到n中的素数 普通线性筛法: void prime1()//函数 { pri[0]=pri[1]=0;//prim为素数数组,若为素数,则prim[i]为真 for(int i=2;i<sqrt(n+0.5);i++)//因为n开平方为sqrt(n),当i为sqrt(n),i*i必大于等于n, { for(int j=i*i;j<n;j+=i)//依次将各个数的倍数...原创 2018-08-05 16:26:37 · 100 阅读 · 0 评论 -
位运算
例题 As we known, data stored in the computers is in binary form. The problem we discuss now is about the positive integers and its binary form. Given a positive integer I, you task is to find out an i...原创 2018-08-05 16:50:33 · 156 阅读 · 0 评论 -
同余与剩余定理
同余定理:两个整数同时除以一个整数得到的余数相同,则二整数同余。记作a ≡ b(mod m)。 (a+b)%p=(a%p+b%p)%p; 而(a*b)%p=a%p*b%p; a/b%m = (a%(b*m))/b%m; 剩余定理: 此公式也可以写成 x=(a1*R1+a2*R2+......+an*Rn)mod R; R=(m1*m2*m3*......mk); R...原创 2018-08-01 15:12:34 · 897 阅读 · 0 评论 -
图匹配
二分图: 二分图又称作二部图,是图论中的一种特殊模型。 设G=(V,E)是一个无向图,如果顶点V可分割为两个互不相交的子集(A,B),并且图中的每条边(i,j)所关联的两个顶点i和j分别属于这两个不同的顶点集(i in A,j in B),则称图G为一个二分图。 简单的说,一个图被分成了两部分,相同的部分没有边,那这个图就是二分图,二分图是特殊的图。 匹配: 给定一个二分图G,在G的一个子...转载 2018-08-18 01:19:03 · 10218 阅读 · 1 评论 -
RMQ区间最值查询
RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干次询问RMQ(i,j),返回数列A中下标在区间[i,j]中的最小/大值。 本文介绍一种比较高效的ST算法解决这个问题。ST(Sparse Table)算法可以在O(nlogn)时间内进行预处理,然后在O(1)时间内回答每个查询。 1)预处理 设A[i]...转载 2018-08-15 22:53:48 · 254 阅读 · 0 评论 -
欧拉回路(一笔画)
https://vjudge.net/contest/289236#problem/A 题目 判断一个图是否能够用一笔画下来.规定,所有的边都只能画一次,不能重复画。 input 第一行只有一个正整数N(N<=10)表示测试数据的组数。 每组测试数据的第一行有两个正整数P,Q(P<=100,Q<=100),分别表示这个画中有多少个顶点和多少条连线。(...原创 2019-04-10 11:28:58 · 744 阅读 · 0 评论