自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 收藏
  • 关注

原创 51nod1264 线段相交

给出的数据应该不包含在一条线上,下面的程序也过不了那样的数据。#include using namespace std;struct point{ double x,y;}p[4];double f(point a,point b,point c){ return (a.x - c.x)*(b.y - c.y)-(a.y - c.y)*(b.x - c.x);}b

2017-07-31 20:00:01 333

原创 51nod1183编辑距离

1183编辑距离基准时间限制:1 秒 空间限制:131072 KB 分值:0难度:基础题 收藏 关注 取消关注编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。例如将kitte

2017-07-31 14:46:16 353

原创 玲珑#19 A 数论打表 B RMQ+二分

A: http://www.ifrog.cc/acm/problem/1145#include using namespace std;int main(){ int n; while(~scanf("%d",&n)){ int m = n; int num; if( m >=1 && m<=10 ){ num = 0; }else if(m <= 99)

2017-07-31 10:33:38 307

转载 卡特兰数

出处:http://blog.csdn.net/jtlyuan/article/details/7440591卡特兰数又称卡塔兰数,卡特兰数是组合数学中一个常出现令h(0)=1,h(1)=1,catalan数满足递推式:h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)*h(0) (n>=2)例如:h(2)=h(0)*h(1)+h(1)*h(0

2017-07-30 16:58:13 255

原创 数论-Lucas(卢卡斯定理)

Lucas定理是用来求 c(n,m) mod p,p为素数的值。应用:大组合数求模表达式C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p 求C(n, m) mod 10007/*int Lucas (ll n , ll m , int p) {  return m == 0 ? 1 : 1ll*comb (n%p , m%p , p) * Luc

2017-07-30 16:11:02 3076

原创 51nod1120 卡特兰数+Lucas定理

1120机器人走方格 V3基准时间限制:1 秒 空间限制:131072 KB 分值:80难度:5级算法题 收藏 关注 取消关注N * N的方格,从左上到右下画一条线。一个机器人从左上走到右下,只能向右或向下走。并要求只能在这条线的上面或下面走,不能穿越这条线,有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10007的结果。

2017-07-30 16:06:33 573

原创 51NOD1119

M * N的方格,一个机器人从左上走到右下,只能向右或向下走。有多少种不同的走法?由于方法数量可能很大,只需要输出Mod 10^9 + 7的结果。Input第1行,2个数M,N,中间用空格隔开。(2 &lt;= m,n &lt;= 1000000)Output输出走法的数量 Mod 10^9 + 7。Input示例2 3Output示例3 #in...

2017-07-30 14:10:43 306

原创 中国剩余定理

中国剩余定理参考:http://blog.csdn.net/d_x_d/article/details/48466957如要讨论中国利余定理,同余(congruence)的概念可算是必须。给定一个正整数n,我们说两个数a、b是对模n同余,如果a-b是n的倍数。用符号a≡b(mod n)来代表。一般来说,a≡b(mod n)等同于a=b+kn,而a,b,k,n都是整数,所以,13≡1

2017-07-29 10:28:47 436

原创 UVA10954

题目传送:  https://vjudge.net/problem/UVA-10954#include #include #include #include #include #define LL long longusing namespace std;const int AX = 5000+55;int a[AX];int main(){ int n;

2017-07-28 19:21:14 281

原创 HDU5976

DetachmentTime Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1294    Accepted Submission(s): 366Problem DescriptionIn a highly develope

2017-07-28 19:17:41 520

原创 HDU2669

扩展欧几里得+乘法逆元模板#include #define LL long longusing namespace std;LL x,y;LL ex_gcd(LL a,LL b,LL &x,LL &y){ if(b == 0){ x = 1; y = 0; return a; } LL ans = ex_gcd(b,a%b,x,y); LL temp = x; x

2017-07-28 15:02:19 394

原创 扩展欧几里德与乘法逆元

扩展欧几里得:扩展欧几里得是在欧几里得的基础上扩充而来: gcd(a, b) = gcd(b, a mod b)对于不全为 0 的非负整数 a、b,gcd(a,b)表示 a,b 的最大公约数,必然存在整数对 x,y ,使得 gcd(a,b)=ax+by。   就是给两个整数 a,b 必然存在一对整数 x,y 使得 ax + by = gcd(a,b),这个定理又叫...

2017-07-28 12:04:50 513

原创 UVA12333

题目传送  : https://vjudge.net/problem/UVA-12333大数+字典树给几个斐波那契数的前缀,让你判断最小是第几个。。我写的大数怎么就过不了,只好用了小白的唉。。边生成大数边插入,并且附加个id就行了。注意说100000就开到100000别弄大,一大就错。#include #include #include using namespace

2017-07-28 08:58:35 1164 1

原创 大数相加(正整数)

#include using namespace std;const int AX = 1e5+666;const int maxn = 1e4+666;char s1[maxn];char s2[maxn];int a[maxn];int b[maxn];int main(){ int T; cin>>T; while(T--){ scanf("%s%s",s1,s2)

2017-07-27 19:54:53 930

原创 HDU2333(二分答案)

Recently your team noticed that the computer you use to practice for programming contests is not good enough anymore. Therefore, you decide to buy a new computer.To make the ideal computer for y

2017-07-27 17:12:53 725

原创 POJ1738

An old Stone GameTime Limit: 5000MS Memory Limit: 30000KTotal Submissions: 3686 Accepted: 1040DescriptionThere is an old stone game.At the beginning of the game the

2017-07-27 09:33:35 406

原创 multiset 多重集合容器

头文件#include和set不同的一点:允许有重复元素出现遍历multiset 需要用到迭代器:multiset::iterator it;反向遍历需要反向迭代器:multiset:: reverse_iterator it;find()查找 multiset::iterator t = s.find(29); cout

2017-07-26 16:23:31 333

原创 HDU4544

湫湫系列故事——消灭兔子Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 2975    Accepted Submission(s): 980Problem Description  湫湫减肥  越减越肥! 

2017-07-26 16:00:02 294

原创 POJ2096

Collecting BugsTime Limit: 10000MS Memory Limit: 64000KTotal Submissions: 5747 Accepted: 2843Case Time Limit: 2000MS Special JudgeDescriptionIvan is fond

2017-07-26 15:56:56 267 1

原创 巴什博弈

1066 Bash游戏基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注有一堆石子共有N个。A B两个人轮流拿,A先拿。每次最少拿1颗,最多拿K颗,拿到最后1颗石子的人获胜。假设A B都非常聪明,拿石子的过程中不会出现失误。给出N和K,问最后谁能赢得比赛。例如N = 3,K = 2。无论A如何拿,B都可以拿到最后

2017-07-25 20:17:49 283

原创 最长公共上升子序列LCIS

最长公共子上升子序列的O(n²)算法详细解析请看这里:https://wenku.baidu.com/view/3e78f223aaea998fcc220ea0.html1.首先定义F[i][j]是以a[]的前i个字符与b[]匹配且以b[j]为结尾的最长上升子序列的长度2.如果a[i] != b[j] 那么F[i][j] = F[i-1][j] ;3. 如果a[i] == b[

2017-07-25 19:58:50 1874

原创 UVA1640 数位统计

参考博客:http://blog.csdn.net/u014800748/article/details/43956019题目传送:https://vjudge.net/problem/UVA-1640算法竞赛入门经典上的一道例题(P336)这类问题的一般步骤都是先用f(n,d)计算出0~n中d数字出现的次数,那么答案就是f(b,d)-f(a-1,d)#includ

2017-07-25 18:27:03 658 1

原创 Codeforces764D

Each New Year Timofey and his friends cut down a tree of n vertices and bring it home. After that they paint all the n its vertices, so that the i-th vertex gets colorci.Now it's time for Timo

2017-07-25 18:17:13 434

原创 HDU2546

电子科大本部食堂的饭卡有一种很诡异的设计,即在购买之前判断余额。如果购买一个商品之前,卡上的剩余金额大于或等于5元,就一定可以购买成功(即使购买后卡上余额为负),否则无法购买(即使金额足够)。所以大家都希望尽量使卡上的余额最少。某天,食堂中有n种菜出售,每种菜可购买一次。已知每种菜的价格以及卡上的余额,问最少可使卡上的余额为多少。 Input 多组数据。对于每组数据: 第一

2017-07-25 16:32:12 329

原创 UVA725

#include #include #include #include #include #include #define LL long longusing namespace std;const int AX = 1e5+666;int ss[AX];sets;int main(){ int n; int fuck = 0; while(scanf("%d",&n

2017-07-25 16:30:20 327

原创 斯特林近似

斯特林近似是用来计算n的阶乘的近似值的公式:如果要计算N!后得到的数字为几位数,则我们可以知道其位数等于 lg(N!) +1;Stirling公式的意义在于:当n足够大时,n!计算起来十分困难,虽然有很多关于n!的等式,但并不能很好地对阶乘结果进行估计,尤其是n很大之后,误差将会非常大。但利用Stirling公式可以将阶乘转化成幂函数,使得阶乘的结果得以更好的估计。而且n越大,估计

2017-07-25 15:01:53 2134

原创 codeforces628B

B. New Skateboardtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputMax wants to buy a new skateboard. He has calculated

2017-07-24 19:45:23 325

原创 poj2689

The branch of mathematics called number theory is about properties of numbers. One of the areas that has captured the interest of number theoreticians for thousands of years is the question of primali

2017-07-24 19:41:38 487

原创 string 整形数据 相互转化

#include #include #include using namespace std;int main(){ stringstream ss; string str; //将n转换为字符串到str中 int n; cin>>n; ss<<n; ss>>str; cout<<str<<endl; return 0;}#include #in

2017-07-24 16:12:54 1170

原创 大数N的阶乘

模拟+优化先贴一个未优化过的按10进制写的:#include #include #include #include #include #define LL long longusing namespace std;const int AX = 1e6+666;int a[AX];int main(){ int n; cin>>n; int len = 1;

2017-07-24 16:03:44 820

原创 堆排序

http://blog.csdn.net/morewindows/article/details/6709644/#reply参照这个博客写一个最大堆:父节点与子节点的关系:堆一般都用数组来表示堆,i结点的父结点下标就为(i – 1) / 2。它的左右子结点下标分别为2 * i + 1和2 * i + 2。如第0个结点左右子结点下标分别为1和2。堆的增删操作:

2017-07-23 20:02:48 209

原创 Kruscal算法

参考:http://blog.csdn.net/luomingjun12315/article/details/47700237Kruskal算法      Kruskal算法是基于贪心的思想得到的。首先我们把所有的边按照权值先从小到大排列,接着按照顺序选取每条边,如果这条边的两个端点不属于同一集合,那么就将它们合并,直到所有的点都属于同一个集合为止。至于怎么合并到一个集合,那

2017-07-23 15:34:29 1334

原创 hihocoder1093 SPFA算法模板

一:背景SPFA(Shortest Path Faster Algorithm)算法,是西南交通大学段凡丁于 1994 年发表的,其在 Bellman-ford 算法的基础上加上一个队列优化,减少了冗余的松弛操作,是一种高效的最短路算法。二:算法过程设立一个队列用来保存待优化的顶点,优化时每次取出队首顶点 u,并且用 u 点当前的最短路径估计值dist[u]对与 u 点邻接的顶点

2017-07-22 21:23:05 399

原创 hihocoder1089

#1089 : 最短路径·二:Floyd算法时间限制:10000ms单点时限:1000ms内存限制:256MB描述万圣节的中午,小Hi和小Ho在吃过中饭之后,来到了一个新的鬼屋!鬼屋中一共有N个地点,分别编号为1..N,这N个地点之间互相有一些道路连通,两个地点之间可能有多条道路连通,但是并不存在一条两端都是同一个地点的道路。由于没有

2017-07-22 19:33:43 377

原创 hihocoder1081

#1081 : 最短路径·一时间限制:10000ms单点时限:1000ms内存限制:256MB描述万圣节的早上,小Hi和小Ho在经历了一个小时的争论后,终于决定了如何度过这样有意义的一天——他们决定去闯鬼屋!在鬼屋门口排上了若干小时的队伍之后,刚刚进入鬼屋的小Hi和小Ho都颇饥饿,于是他们决定利用进门前领到的地图,找到一条通往终点的最短路

2017-07-22 18:58:56 457

原创 hihocoder1080

#1080 : 更为复杂的买卖房屋姿势时间限制:10000ms单点时限:1000ms内存限制:256MB描述小Hi和小Ho都是游戏迷,“模拟都市”是他们非常喜欢的一个游戏,在这个游戏里面他们可以化身上帝模式,买卖房产。在这个游戏里,会不断的发生如下两种事件:一种是房屋自发的涨价或者降价,而另一种是政府有关部门针对房价的硬性调控。房价的变化

2017-07-22 17:26:38 318

原创 hihoCoder1079 线段树+离散化

线段树+离散化#1079 : 离散化时间限制:10000ms单点时限:1000ms内存限制:256MB描述小Hi和小Ho在回国之后,重新过起了朝7晚5的学生生活,当然了,他们还是在一直学习着各种算法~这天小Hi和小Ho所在的学校举办社团文化节,各大社团都在宣传栏上贴起了海报,但是贴来贴去,有些海报就会被其他社团的海报所遮挡

2017-07-22 15:53:26 364

原创 LCA(dfs+st)在线算法

在线算法DFS+ST描述(思想是:将树看成一个无向图,u和v的公共祖先一定在u与v之间的最短路径上):(1)DFS:从树T的根开始,进行深度优先遍历(将树T看成一个无向图),并记录下每次到达的顶点。第一个的结点是root(T),每经过一条边都记录它的端点。由于每条边恰好经过2次,因此一共记录了2n-1个结点,用E[1, ... , 2n-1]来表示。(2)计算R:用R[i]表示E数组中第一

2017-07-22 09:06:48 679

原创 ubuntu下安装搜狗输入法

1 sudo apt-get install fcitx libssh2-1 2 下载deb包 下载地址在 http://pinyin.sogou.com/linux/ 根据你的系统选择32位或者64位3 安装下载好的安装包命令 sudo dpkg -i sougou_64.deb 4. 重启系统5.在终端中输入im-config,这时会出现一个对话框,点击

2017-07-21 17:18:56 328

原创 RMQ

RMQ(Range Minimum/Maximum Query),即区间最值查询,是指这样一个问题:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j一种比较高效的在线算法(ST算法),是指用户每输入一个查询便马上处理一个查询。该算法一般用较长的时间做预处理,待信息充足以后便可以用较少的时间回答每个查询。ST(Sparse Table)算法是

2017-07-21 15:48:40 284

空空如也

空空如也

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

TA关注的人

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