- 博客(9)
- 收藏
- 关注
原创 POJ 1753
水题一道,有多种解法,用的DFS写的,还可以用递归枚举POJ 1753,题目链接http://poj.org/problem?id=1753,翻译一下整个题目的大概意思:有4*4的正方形,每个格子要么是黑色,要么是白色,当把一个格子的颜色改变(黑->白或者白->黑)时,其周围上下左右(如果存在的话)的格子的颜色也被反转,问至少反转几个格子可以使4*4的正方形变为纯白或者纯黑?...
2018-11-03 23:24:56 205
原创 STL
1.sort排序函数用法,以a[100]为例,将0—99元素从小到大排序bool cmp(int x1, int x2){ return x1 < x2;}sort(a, a + 100, cmp) 2.栈与队列(怎样用两个栈变成一个队列?——压栈,先压出再压入)3.向量vector •#include <vector...
2018-10-16 19:45:46 102
原创 快速幂
1.快速乘法ll mul(ll a,ll b)//a*b{ ll ans=0; while(b) { if(b&1) ans=(ans+a)%mod; b>>=1; a=(a+a)%mod; } return ans;}2.快速幂(引用了快速乘法)ll pow(ll a,...
2018-10-16 19:45:35 122
原创 线段树1
问题引入1:长度为N的一维数组(a[1]~a[N]),有q(q <= 100000)次询问,每次询问为l, r,代表区间[l, r]之间数的和。问题引入2:在问题1的基础上我们再加一种更改操作,也就是每次的操作可能有两种类型,一种是查询操作,询问区间[l, r]之间的数的和,第二种是更新操作,将位置i上的数更改为x。经典例题:给你一个数组a[1]~a[N],有q次操作,每次操作有两种...
2018-10-16 19:45:25 149
原创 数论-素数和同余
1.如何求1~N内的所有素数(埃拉筛法)void init(){ for(long long i=2;i<N;i++) { if(!v[i]) { prime[p++]=i; for(long long j=i*i;j<N;j+=i) { ...
2018-10-16 19:45:12 422
原创 容斥原理-计算几何
1.容斥原理举例:A∪B∪C=A+B+C-A∩B-A∩C-B∩C+A∩B∩C;ll solve(ll x){ ll ans = 0; for(ll i=1;i<=totle;i++) { int se=1,cnt=0; for(int j=0;j<m;j++) { if((i&g...
2018-10-16 19:44:55 1198
原创 树状数组-并查集
1.树状数组给你一个序列a[1]~a[N],你需要找出每一个数a[i],在区间[1, i - 1]有多少个数小于等于a[i]。int lowbit(int x){ return x&(-x);}void update(int x,int y){ while(x<=n) { c[x]+=y; x+=lowbit(...
2018-10-16 19:44:38 277
原创 约瑟夫环-组合数学
1.约瑟夫环胖胖斌无意中陷入了一个危险的游戏中,n个人围成一个圆圈,从第一个开始报号,第一次报道m的人会被杀,此后报到k的人会被杀。最终留下的一个人可以幸免。胖胖斌绞尽脑汁也不知该如何活下来,聪明的你可以帮他确定初始该占的位置吗?#include <bits/stdc++.h>using namespace std;int main(){ int n,k,i,m...
2018-10-16 19:44:28 1008
原创 动态规划
1.给你一个数字矩阵,从左上角开始,每次只能向下或向右,走到右下角。选到的和最大是多少? 1 3 2 99 5 6 3 6 9 8 7 4 1 1 3 6 6 8#include<bits/stdc++.h>using namespace std;int a[1005][1005];int d...
2018-10-16 19:44:11 95
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人