- 博客(71)
- 收藏
- 关注
原创 cookie和session总结
0. comprehendcookie用来在客户端缓存信息,在登录后有服务器生成一个cookie文件保存在客户端浏览器,之后每次请求都会带上cookie保持登录状态(判断是否登录),一段时间后失效,这样缓存可以用来缓解服务器压力,但是数据不能过大,因为每次请求都会带上cookie,使带宽增加传递会变慢,最好也不要保存重要的密码等信息,因为cookie一旦被人恶意截获会盗取信息,重要信息可以放在服务...
2018-05-17 20:36:35 437
原创 Mysql 总结
1.基本操作1.1 登陆创建:mysql -u root -p 666666show databases;use blog;show tables;show columns from article; # 显示列名等信息describe article; # 查询表结构show index from article;create database mydb;drop database mydb;c...
2018-05-17 20:34:13 361
原创 hdu 3037 费马小定理+逆元求组合数+Lucas定理
组合数学推推推最后,推得要求C(n+m,m)%p其中n,m小于10^9,p小于1^5用Lucas定理求(Lucas定理求nm较大时的组合数)因为p数据较小可以直接阶乘打表求逆元求逆元时,由费马小定理知道p为素数时,a^p-1=1modp可以写成a*a^p-2=1modp所以a的逆元就是a^p-2,可以求组合数C(n,m)%p中除法取模,将其转化为乘法取模即 /(m
2017-02-01 20:49:56 1035
原创 hdu 5698 求组合数(逆元+阶乘 递推公式
分析向格子里填数发现,是左斜的杨辉三角,发现规律,其实就是求C(n+m-4,m-2)的组合数求组合数用逆元+阶乘(递推)#include #include #define ll long longconst int N=200005;//1e5越界const ll M=1e9+7;using namespace std;ll fac[N]={1,1},inv
2017-01-31 14:38:17 1323
原创 hdu 4704 sum 大整数取模+费马小定理+数快速幂
求输入的n可以有几种拆分情况:如:2-->(2,11)2种3-->(3,21,12,111)4种4-->(4,31,13,22,211,112,121,1111)8种发现规律 结果 = 2^(n-1),再取模得到要求的即为 2^(n-1)%mod由于所给的n很大,10^100000,(10^3=1000......)所以用字符串读入,先用费马小定理2^n % p =
2017-01-28 15:15:38 750
原创 hdu 5976 Detachment 逆元+二分+数学
给定一个数,让你分成互不相等的n个数(n为自然数),使这些数的乘积最大,输出最大乘积。因为分的数不能相同,所以发现分的数越小越好,从2开始枚举分成2,3,4,5......x=2+3+4+....+n+s(会剩下一个s)枚举s三种情况1.s==02.s==n3.s需要预处理,add2到n个相加mul2到n个相乘处理某些值的时候要用逆元,求逆元不能超时。。
2017-01-24 00:01:23 407
原创 hdu A/B 扩展gcd
转化为ax+by=c的形式,其中b=9973#include using namespace std;int x,y;int exgcd(int a,int b){ if(b==0) { x=1; y=0; return a; } int r=exgcd(b,a%b); int t=x;
2017-01-23 20:24:56 490
原创 poj 1061 青蛙的约会 扩展gcd
青蛙相遇可列方程(x+mt)%L=(y+nt)%L,即(m-n)*t+k*L=y-x可转化为ax+by=c先求出ax+by=gcd,再将解得的x*(c/gcd)求出最小整数解即可:用x=(x*b+b)%b....(这里的b为b/gcd#include #define LL long longusing namespace std;LL exgcd(LL a,
2017-01-23 20:06:55 334
原创 hdu 2669 Romantic 扩展欧几里得求线性方程模板题
a,b互质,所以gcd=1即求ax+by=1,用扩展gcd直接求#include #include #define LL long longusing namespace std;LL x,y;LL exgcd(int a,int b){ if(b==0) { x=1; y=0; return a; }
2017-01-23 19:45:28 431
原创 hdu 1016(dfs基础)
题意:输入一个数n,把1到n的自然数放到一个环里,保证相邻的两个数的和是素数。(1和n思路:素数打表+深搜#include #include #include #include using namespace std;int a[25],b[45]= {0},n;int isprime[40]= {0,1,1,1,0,1,0,1,0,0,0,1,0,1,0,0,0,
2016-11-12 20:15:40 474
原创 hdu 1241(dfs基础题)
nm的图有多少连通块把每个@遍历一遍,bfs八个方向搜一下,搜过的标记为*#include #include using namespace std;char a[105][105];int n,m;int ans;void init(){ ans=0; for(int i=0;i<n;i++) { for(int j=0;j<m;j+
2016-11-12 20:10:05 399
原创 hdu 1027 hdu 1716 (next_permutation的使用)
用next_permutation()函数前提有序,先排序sort一般用 do while(next_permutation(num,num+n))是保证第一个组合形式输出如1 2 5 3排序完输出1 2 3 5然后next_使用一次,输出num[i]为1 2 5 3再使用一次,num继续变总之这个函数就是使num保存每一次变化的全排列,再依次输
2016-11-12 18:27:17 450
原创 poj 3009(dfs基础题)
题目大意要求把一个冰壶从起点“2”用最少的步数移动到终点“3”,其中0为移动区域,1为石头区域,冰壶一旦想着某个方向运动就不会停止,也不会改变方向(想想冰壶在冰上滑动),除非冰壶撞到石头1或者到达终点3,冰壶撞到石头后,冰壶会停在石头前面,此时(静止状态)才允许改变冰壶的运动方向,而该块石头会破裂,石头所在的区域由1变为0. 也就是说,冰壶撞到石头后,并不会取代石头的位置。终点是一个摩擦力很大的区
2016-11-12 16:10:43 681
原创 java 大数类 总结 整数小数(BigInteger和BigDecimal)
java大法好,退c保平安看完java的大数类,决定重新做一下之前大数的题然后再整理一下吧= =整数部分(BigInterger)hdu 1001 求从1加到n,n可以很大//package BigInteger1;import java.io.*;import java.math.BigInteger;import java.util.*;public cla
2016-11-10 21:17:15 3643 2
原创 hdu 1062(字符串的处理 倒序输出)
输入带空格的字符串,gets(s)#include #include #include #include#include using namespace std;int main(){ char s[1005]; int n; cin>>n; getchar(); for(int i=0; i<n; i++) {
2016-11-07 00:33:05 488
原创 hdu 1099 (求期望值,分数求和模拟,gcd,lcm)
看了好久题,就是求期望值。期望呀。。第一张没拿过的彩票,可能性是1第二张没拿过的,可能性是4/5,就是抽五张,在其中四张拿就可以,期望值是1/(4/5)第三张,可能性是3/5(不是16/25!!),期望值是/(3/5).所以,反正最后是求n*(1+1/2+1/3+1/4+.....+1/(n-1)+1/n)随便模拟做一下,然后22!这一个数据卡住了,连long
2016-11-01 00:15:20 591
原创 hdu 1046 (找规律水)
找规律有偶数时,n*m否则,n*m-1+1.41#include #include using namespace std;int main(){ int n,m,testcase; cin>>testcase; for(int ttt=1;ttt<=testcase;ttt++) { cin>>n>>m; do
2016-10-31 00:24:24 514
原创 hdu 1250 (大整数模板+打表)
大整数,二维数组打表同hdu 1041题类似,直接改了模板直接求会超内存#include#include#include using namespace std;const int mod=100000;int a[7500][410];void fun()//打表{ a[1][1]=1; a[2][1]=1; a[3][1]=1; a[4
2016-10-30 21:31:50 454
原创 高精度大整数模板(n!为例)
如求n!1.打表(就是个想法,显然会超内存,数据范围1000可以)#include #include using namespace std;const int N=100000;const int M=10001;int a[M][7200];void fun(){ a[1][1]=1; a[2][1]=2; for(int i=3;i<M;i++)
2016-10-30 20:28:03 648
原创 hdu 1041 Computer Transformation(递推+大整数模板*)
多列几个,找到递推公式1,02,13,14,35,56,117,21找了规律可以得到递推公式f(n)=f(n-1)+2*f(n-2)很像斐波那契但由于n的范围是1000所以每次结果都储存一下所以目测结果需要用大数来做,用数组储存大数,一个储存四位的模板:#include#include#include using namespace
2016-10-30 19:25:01 456
原创 hdu 5078 Osu!(水)
求两点间的最大复杂度,两点间距离除以时间#include #include #include #include using namespace std;const int N=1010;int x[N],y[N],t[N];int main(){ int tt,n; cin>>tt; while(tt--) { double an
2016-10-30 01:08:42 498
原创 hdu 1038 (水)
看懂题,纯计算#include #include using namespace std;const double pi=3.1415927;int main(){ int tt=0,r; double dia,t; while(scanf("%lf%d%lf",&dia,&r,&t)&&r) { double ans1=pi*
2016-10-25 20:38:01 389
原创 hdu 1039 (字符串水题)
不满足的标记,纯水#include #include #include using namespace std;int main(){ char s[25]; char d[]="aeiou"; while(cin>>s&&strcmp(s,"end")) { int flag=0,f=0,k=0; int k
2016-10-25 20:36:42 994
原创 hdu 1037 (水)
纯水题+1#include using namespace std;int main(){ int a; int sum=0,flag=0; for(int i=0;i<3;i++) { cin>>a; if(a<=168&&!flag) {flag=1;sum=a;} } if(
2016-10-25 20:02:57 388
原创 hdu 1036 (水题控制输入输出格式)
水题:主意输入字符串,变成数字,和输出格式就好%d%3d(3个字符对齐)%03d(补0并对齐)%.3f保留小数点后3位四舍五入:加00.5取整就好#include #include using namespace std;int main(){ int tt,n,flag,mi; char s[15]; double d; cin
2016-10-25 19:37:00 1021
原创 hdu 1286 找新朋友(欧拉函数在线模板)
纯模板#include using namespace std;int Euler(int n){ int ans=1; for(int i=2;i*i<=n;i++) { if(n%i==0) { n/=i; ans*=(i-1); while(n%i==0
2016-10-24 23:20:28 505
原创 hdu 2824 The Euler function (欧拉函数离线模板)
欧拉函数离线处理模板根据欧拉公式递推公式写函数:令a是n的最小质因数,if(n%a==0&&(n/a)%a==0)euler(n)=euler(n/a)*a;if(n%a==0&&(n/a)%a!=0) euler(n)=euler(n/a)*(a-1)纯模板,统计和sum,暴力打表int phi[N];int prime[N],isprime[N];vo
2016-10-24 22:55:36 419
原创 hdu 1787 GCD Again (欧拉函数在线模板)
欧拉函数定义:小于或等于n的数中,与n互质的数的数目如,euler(16)=81 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16,其中与n互质(与n的最大公因数是1的)的有1 3 5 7 9 11 13 15共8个,其中n本身显然不是本题,显然是求n中剩下的数目,在减去1。即n-euler(n)-1在线求就好,不存在数组里。根据欧拉函数
2016-10-24 22:15:47 757
原创 hdu 2066 一个人的旅行 (多源最短路 Floyd)
我居然看都没看就做成Floyd 求多源最短路了,但很容易超时,要注意一下细节,毕竟o(n^3)做完看了巨巨是我题解,把草儿家看成0,草儿到邻近的城市花费的时间看成0,这样就变成了从0到各个点的单源最短路问题,这样o(n^2)就可以过了要学习大佬们的思维方式,嗯!Floyd:#include #include #include #include using namespa
2016-10-23 15:32:22 583
原创 Dijkstra + 优先队列 + 邻接表优化
为了学习这个优化啊,把Dijkstra,和优先队列,还有map,还有pair,还有vector,之前很散的知识又重现看了一遍然后读了好久的dalao下面这个代码,现在算是懂了一些些了。#include #include #include #include #include #include #include #include using namespace std;
2016-10-23 01:29:56 822
原创 STL——map的用法
知道map的用法,能很好的解决,字符串和数值的对应关系如:一个姓名对应一个学号,就可以用mapmp;mp["li"]=1012;mp["zhang"]=1013;1.头文件#include 2.构造一个map mapmp;3.数据的插入第一种:直接m1["name1"]=11;第二种:insert插入pair数据m3.insert(pair("name3"
2016-10-22 15:31:27 468
原创 hdu 1874 通畅工程续(最短路模板)
Floyd o(n^3)#include #include #include using namespace std;int n,m,a,b,t,f,e;const int inf=0x3f3f3f3f;int mp[300][300];void Floyd (){ for(int k=0;k<n;k++) for(int i=0;i<n;i++)
2016-10-22 13:37:01 390
原创 STL容器——优先队列
优先队列在队列基础上按优先级顺序进入队列声明优先队列 priority_queueq;//这是默认的优先级顺序基本操作:q.empty() 如果队列为空,则返回true,否则返回falseq.size() 返回队列中元素的个数q.pop() 删除队首元素,但不返回其值q.top()
2016-10-22 00:21:33 460
原创 hdu 2544 (最短路 Dijkstra模板题)
#include#include#includeusing namespace std;#define INF 0x3f3f3f3;int mapn[110][110],dis[110],vis[110];void Dijkstra(int n){ int p,minn; for(int i=1;i<=n;i++) { dis[i]=mapn[1][i
2016-10-20 00:30:16 491
原创 hdu 1869 六度分离(Floyd)
题意:数据是否能满足任何两个人都可以通过最多六个人认识即求每个人与其他人的联系是否都小于等于7用Floyd 无向图 初始有联系的标记1mp[i][j]加点k,使数组内最后剩下的是第i人与其他人之间的路径长度,即可以通过几个人认识如第一组数据的mp为0 1 2 3 4 5 6 71 0 1 2 3 4 5 62 1 0 1 2 3 4 53 2 1 0 1 2 3
2016-10-19 01:26:01 351
原创 poj 1125 Stockbroker Grapevine(Floyd模板题)
卡题意。。输入一个n,代表n个人,接下来n行,每行第一个,代表第i个人可以将信息传给的人数k,接下来输入k组,每组含被传给的人的序号,和第i人传给他的时间求从哪个人传播,到达最后一个人,用的时间最少,并输出最少时间即求多源起点的最短路,嗯,求每个人传递下去的最大值的,最小值。加上第k个人(k从1到n),更新一下距离#include #include using
2016-10-19 00:14:36 574
原创 poj 1011 Sticks(经典深搜dfs+剪枝)
1.枚举所有可能的所组成的长度2.深搜两个状态(a,b)a:没有用过的棍的个数b:当前要组成的棍还需要的长度初始状态:(n,i)终止状态:(0,0)3.剪枝未剪枝的dfs:bool dfs(int a,int b){ if(a==0&&b==0) { return true; } if(b==
2016-10-18 17:33:30 712
原创 hdu 5112 A Curious Matt
知道距离时间,求最大速度结构体,sort排序#include #include #include #include #include #define maxn 10010using namespace std;struct node{ int first,second;}a[maxn];bool cmp(node x, node y){ return x
2016-10-17 19:49:27 309
原创 hdu 5120 Intersection(求相交圆的面积)
画画图发现,两个相同的环重合部分的面积就是A大圆和B大圆相交的面积,减去A大圆和B小圆,减去A小圆和B大圆的面积,再加上两个小圆相交的面积,直接套,两圆相交的面积模板S = A大B大 - A大B小 - A小B大 + A小B小。#include #include #include #include using namespace std; double S1,S2,S3,a
2016-10-17 19:28:48 693
原创 hdu 1798 Tell me the area(相交圆的面积)
相交圆的面积模板纯数学知识,S1,S2是两个扇形的面积,S3是矩形的面积,a1,a2是两个角,用来求扇形面积q是周长的一半,用来求矩形面积#include #include #include #include using namespace std;struct circle{ double x,y,r;};int main(){ circle
2016-10-17 18:58:02 750
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人