自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

学无纸巾

终习

  • 博客(37)
  • 收藏
  • 关注

原创 CodeForces 698B Fix a Tree

题意:给你n个数,第i个数代表点i连向点a[i],将这副图变成树,求最小改变边的数量,以及改变后的对应量。 题解:给出的n个数如果有一个点对应自己,那么这个环只有一个点,可以作为根。我们将有环的拆环,再接到根上。#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>

2016-09-29 22:13:59 237

原创 单向链表建立与遍历

只是防忘而已#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#include <map>using namespace std;#define LL long long#define INF 0x3f3f3f3f#de

2016-09-26 19:02:24 258

原创 51nod 1267 4个数和为0(二分【形式二】)

51nod 1267 4个数和为0二分的另一种形式 将两两数相加得到数组,存在b[i]+b[j] = 0,并且他们俩俩数不能相同。 我还真不知道这也叫二分法,从两边开始查找,合并的两边值相加答案渐渐接近0【应该说在0左右晃动】。#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <a

2016-09-21 20:08:24 233

原创 【稍优化点的欧拉函数】hdu 3501 Calculation 2

hdu 3501 Calculation 2(稍优化点的欧拉函数)最开始我学的欧拉函数,模拟方程式需要O(n)的时间复杂度。做这题,我发现了我们只需要知道质因子,既然是因子那么一定是小于等于sqrt(n),那么我们复杂度下降到O(sqrt(n))。#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>

2016-09-20 19:57:26 259

原创 51nod 1090 3个数和为0(二分)

51nod 1090 3个数和为0暴力+二分#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#include <map>using namespace std;#define LL long long#define IN

2016-09-19 22:19:03 228

原创 51nod 1087 1 10 100 1000

51nod 1087 1 10 100 1000简单思维题,容易发现是1的下标为:1 2 4 7 11,它们的相邻差不断++,推出下标x符合:x = (n-1)*n/2+1;#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#i

2016-09-19 21:58:26 258

原创 51nod 1003 阶乘后面0的数量

51nod 1003 阶乘后面0的数量简单的思维题,寻找后面为0的特征,明显阶乘有几对2和5,那么有几个0,而且明显2的个数比5的个数多,那么我们只要找阶乘5因子的个数。 若还不懂,n/5个数表明了能被1个5整除的n以内数的个数,n/5/5表明了能被2个5整除的n以内数的个数。。。类推。#include <iostream>#include <cstdio>#include <cstring>

2016-09-19 21:42:20 237

原创 51nod 1004 n^n的末位数字(快速幂)

51nod 1004 n^n的末位数字末尾,快速幂mod10即可。#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#include <map>using namespace std;#define LL long long

2016-09-19 21:26:00 216

原创 51nod 1079 中国剩余定理

51nod 1079 中国剩余定理逐级满足法: 具体:http://blog.csdn.net/qq_33199236/article/details/51494157#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#inc

2016-09-19 21:03:13 206

原创 51nod 1073 约瑟夫环

51nod 1073 约瑟夫环N个人(编号0~(N-1)),从0开始报数,报到(M-1)的删去,剩下的人继续从0开始报数。求最后人的编号。 这类问题其公式为: F[1] = 0; F[2] = (F[1]+M)%2; … F[i] = (F[i-1]+M)%i;#include <iostream>#include <cstdio>#include <cstring>#include

2016-09-19 20:35:18 398

原创 51nod 1118 机器人走方格(组合数【逆元】,dp)

51nod 1118 机器人走方格动规(简单)#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#include <map>using namespace std;#define LL long long#define I

2016-09-19 20:13:43 330

原创 【Manacher算法】51nod 最长回文子串 V2

51nod 最长回文子串 V2(Manacher算法)懒得把别人讲得很清楚的算法详解复述一遍,在这我自己总结下这算法,下次浏览的时候能快速回忆起来吧。首先将所有回文子串都转换成了奇数长度(用一个特殊的符号间隔插入,另一个符号放第一位防越界),原以i字符为中心的回文串长度是p[i]-1。定义数组p[i]表示以i为中心的(包含i这个字符)回文串半径长每次比较下延伸到最远的id,看能否借上次得到的答案。

2016-09-17 20:54:36 367

原创 hdu 5879 Cure

hdu 5879 Cure n 很大的时候答案趋近于10^6求出的值,n小的时候预处理暴力即可。#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>using namespace std;#define INF 0x3f3f3f#define pi

2016-09-17 18:42:22 440

原创 hdu 5878 I Count Two Three(二分)

hdu 5878 I Count Two Three(二分)预处理所有满足值,排序后可二分查询。#include <bits/stdc++.h>using namespace std;typedef long long LL;const int N=1e9;int num;map<LL,int>mp;LL a[10000];void init(){ LL i,j,k,l;

2016-09-17 18:33:27 594

原创 51nod 1088 最长回文子串

51nod 1088 最长回文子串枚举每个中间往两边扩散#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#include <map>using namespace std;#define LL long long#def

2016-09-16 22:18:28 320

原创 51nod 1136 欧拉函数(少于或等于n的数中与n互质的数的数目,1也算)

51nod 1136 欧拉函数欧拉函数表达通式:euler(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…(1-1/pn),其中p1,p2……pn为x的所有素因数,x是不为0的整数。 欧拉公式的延伸:一个数的所有质因子之和是euler(n)*n/2。#include <iostream>#include <cstdio>#include <cstring>#in

2016-09-16 21:17:13 671

原创 51nod 1181 质数中的质数(质数筛法)

51nod 1181 质数中的质数(质数筛法)非线性#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#include <map>using namespace std;#define LL long long#defin

2016-09-16 20:26:50 288

原创 51nod 1057 N的阶乘(大数-划分)

51nod 1057 N的阶乘(大数-划分)实话说,题目我做过,但是再次写到这道题目的时候,我就不再想起用这样的方法。所以,我认为记录下来是很有必要的, 1.可以强化理解 2.可以回顾这道题目,用大数乘法做太过繁琐。划分其实是将答案划分成可以输出的数据,再以格式化输出。 那么,为什么这题能使用这种方法算大数,原因是虽然乘的数量多,但是其每个乘数不超过10000, 数组记录的每一位于其相乘可以

2016-09-16 16:39:13 390

原创 51nod 1027 大数乘法

51nod 1027 大数乘法#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#include <map>using namespace std;#define LL long long#define INF 0x3f3

2016-09-16 16:15:17 251

原创 水水笔-续4(09/16)

其实现在是比赛的时间,不过没有实力做下去了。最近心也是比较沉下来,不像暑假那么浮躁。我经队友推荐,接触了51nod,虽然是做基础题目,不过实话说,有部分题目我不能解决,发现学习的东西还太多,基础知识尚未扎实。在寻题解时,无意发现了一位同为大二的同行桑,对方身为女生,对比学习知识的态度,深度,我忏愧不已。当初,既然选择了算法,那么我应该尽力去接触,一步一步去深掘。我不想说什么大志向,大目标,只希望自己

2016-09-16 15:19:19 294

原创 51nod 1130 N的阶乘的长度 V2(斯特林近似)

51nod 1130 N的阶乘的长度 V2(斯特林近似)斯特林公式 位数则为:lg(2*PI*n)/2 + n*lg(n/e).因为结果小数转化取下整,所以结果再加1.#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#i

2016-09-16 10:04:04 395

原创 51nod 1046 A^B Mod C(快速幂)

51nod 1046 A^B Mod C快速幂模板题#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#include <map>using namespace std;#define INF 0x3f3f3f3f#def

2016-09-15 10:32:53 256

原创 51nod 1049 最大子段和

51nod 1049 最大子段和动态规划思想:当前最大子段和是前一个数字结尾的子段和(正数)+当前值,子段和(负数)另起子段。#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#include <map>using names

2016-09-15 10:08:17 354

原创 51nod 1134 最长递增子序列(LIS)

51nod 1134 最长递增子序列动态规划 [O(n^2)]#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <queue>#include <stack>#include <vector>using namespace std;

2016-09-13 22:20:55 282

原创 51nod 1005 大数加法

51nod 1005 大数加法 心好累。。。#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <queue>#include <stack>#include <vector>using namespace std;#define

2016-09-13 20:11:36 302

原创 51nod 1212 无向图最小生成树(prim,kruskal模板)

51nod 1212 无向图最小生成树**prim算法模板:**#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <queue>#include <stack>#include <vector>using namespace st

2016-09-12 21:48:53 344

原创 51nod 1137 矩阵乘法

51nod 1137 矩阵乘法当个模板用吧。。。 ac代码#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <queue>#include <stack>#include <vector>using namespace std;

2016-09-12 19:56:55 371

原创 51nod 1242 斐波那契数列的第N项(O(logn)求递推式)

51nod 1242 斐波那契数列的第N项(O(logn)求递推式)斐波那契数列的第N项,我们已知的用递推式求(O(n)),用递归更加慢。 那么我们使用一种(O(logn))的算法,来学习下呗。它叫做 矩阵快速幂,矩阵加快速幂更配哦。 给出矩阵计算式子: http://blog.csdn.net/qq_33199236/article/details/52516118 ac代码#incl

2016-09-12 19:47:13 628

原创 快速幂及矩阵应用(学习)

快速幂顾名思义,就是快速算某个数的多少次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。快速幂算是个小技巧,在平时做题时会有用到。虽然它简单,但是还是需要我们认真学习一下的。适用于求幂再取模,如:(a^b)%p。 如果 b = 32, 那么 a^32=(a^16)*(a^16) a^16=(a^8)*(a^8) a^8=(a^4)*(a^4) a^4=(a^

2016-09-12 19:02:41 425

原创 51nod 1432 独木舟(贪心)

51nod 1432 独木舟 排序一下,(贪心思想)拿重的人去找能带走的最轻的人,能带走就带走,不能带走就自己走。#include <iostream>#include <stdio.h>#include <string.h>#include <algorithm>#include <math.h>#include <queue>#include <stack>#include <v

2016-09-10 21:04:33 742

原创 hdu 5843 ICPC Football Games

ICPC Asia Regional DalianFootball Games 题意: 输入M代表有M个组,下面有M行。 每行先输入一个数b[i]代表组里队的个数,在输入b[i]个队最后得分情况,问这分数是不是虚假的。 每个队伍之间进行一场比赛,一场比赛的胜者得分为2分,失败者得分为0分,当比赛被并列得分1分。题解:(n = b[i]) 按照我们的思路,我们先考虑了一个特殊的情况: 如果

2016-09-10 18:48:19 260

原创 51nod 1264 线段相交

51nod 1264 线段相交 题解:http://blog.csdn.net/qq_33199236/article/details/51224875#include <iostream>#include <cstdio>#include <cstring>#include <cmath>#include <algorithm>#include <queue>#define INF

2016-09-10 10:44:08 241

原创 51nod 1265 四点共面

51nod 1265 四点共面用向量求四点共面,可知如果设四点为A,B,C,D,那么求出AB,AC,AD向量,如果三向量组成的体积为0,则四点共面。 这样的话,我们用两向量叉乘再点乘第三向量(俗称混合积)就能求体积。那么判断所求是否为0即可。 计算方法: #include <iostream>#include <cstdio>#include <cstring>#include <cma

2016-09-10 10:13:30 232

原创 51nod 1298 乘法逆元(exgcd)

51nod 1298 乘法逆元扩展欧几里得求逆元,模板题啦! 学习请往:http://blog.csdn.net/qq_33199236/article/details/51429013#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <cmath>#include <qu

2016-09-09 20:32:27 256

原创 51nod 1298 圆与三角形

51nod 1298 圆与三角形这题我开始思考一下,应该关注三个点的情况。 情况应该如下: 1. 有点在圆上,那么肯定相交。 2. 有点在圆外,也有点在圆内,那么会相交。 结果wa了。 想简单了些,发现如果两点在圆外横跨圆也相交。。。想来少一种情况考虑, 3. 三角形三点都在圆外,考虑边与圆是否相交,取两点和原点相连组成三角形,发现如果圆外面的角是钝角那么那条线段是不会交于圆的,直角也不

2016-09-09 20:19:30 639

原创 51nod 1384 全排列(next_permutation)

51nod 1384 全排列一个牛B函数的应用,它叫next_permutation函数 next_permutation()函数功能是输出所有比当前排列大的排列,顺序是从小到大。 ac代码#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <cmath>#include

2016-09-09 10:02:14 300

原创 51nod 1459 迷宫游戏(bfs与djsk)

51nod 1459 迷宫游戏BFS bfs题目,要求最短路径下最大得分。 由于基础不扎实,我坑坑洼洼的打出了最短路径,代码如下:#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <cmath>#include <queue>using namespace std;#

2016-09-09 09:29:10 754

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除