摘要: #include using namespace std; int x,p,k; long long f(int a,int b){ if(b==0) return 1%k; if(b==1) return a%k; long long ans=f(a,b/2)%k; ans*=ans%k; if(b%2==1) ans*=a%k; re... 阅读全文
posted @ 2018-10-28 11:14 uncklesam7 阅读(106) 评论(0) 推荐(0) 编辑
摘要: #define M 10010 int STACK[M],top=0; int DFN[M],LOW[M],Index=0; bool InStack[M]; int cnumber=0; vector Edge[M]; vector C[M]; int Inc[M],cD[M]; void tarjan(int i){ int j; Index++; DFN[i]=... 阅读全文
posted @ 2018-10-28 11:11 uncklesam7 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 用于求 区间改变,区间求值问题。 阅读全文
posted @ 2018-10-09 22:53 uncklesam7 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 快速求单点修改,区间求和; 或者可以求区间修改,单点求值,只需树状数组维护原数组的查分数组即可。 单点修改,区间求和: 阅读全文
posted @ 2018-10-09 22:09 uncklesam7 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 题目原型是洛谷的P1771 阅读全文
posted @ 2018-10-08 22:15 uncklesam7 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 求解形如ax+by=gcd(a,b)的一组解。 阅读全文
posted @ 2018-10-08 22:13 uncklesam7 阅读(84) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long int #define N 100000+10 //最大节点数 #define M 1000000+10 //最大的... 阅读全文
posted @ 2018-10-08 22:11 uncklesam7 阅读(1286) 评论(0) 推荐(0) 编辑
摘要: #include #include #include #include #include #include #include int s,t; int n,m; using namespace std; const int INF=99999999; struct Node{ int to; int w; }; struct Node temp; vector v[1002]... 阅读全文
posted @ 2018-10-08 22:08 uncklesam7 阅读(640) 评论(0) 推荐(0) 编辑
摘要: 深度优先搜索,俗称深搜,即DFS,是一个常用并且基础的算法和思想。但是搜索算法的时间复杂度往往很大,是OI不被允许的。所以对于深搜的优化最实用和基础的一个方法就是剪枝。 三原则:1、正确性;2、准确性;3、高效性; 正确性,顾名思义就是不能把通向正确的路径剪去。 准确性,则是尽可能多的剪去不会通向正 阅读全文
posted @ 2018-08-02 12:47 uncklesam7 阅读(463) 评论(0) 推荐(0) 编辑
摘要: 快速排序就是进行多次按照一个支点(一般选择中间位置的数字)分成两组进行排序,将小于该支点的放到左边,大于支点的放入右边这个行为,直到排好所有元素。 快排是不稳定的排序,时间复杂度一般认为是nlog2n,是最常用的内部排序程序。 阅读全文
posted @ 2018-05-28 15:19 uncklesam7 阅读(153) 评论(0) 推荐(0) 编辑