- 博客(13)
- 资源 (4)
- 收藏
- 关注
原创 poj 3669 Meteor Shower
题意:流星雨来袭,为了找一个安全的地方,地图相当于平面坐标系第一象限,初始在原点。然后,每颗流星都会在某个时间砸下来,砸到的地方连同上下左右都会毁灭,此地方就不能通过了,他只能走其他地方。移动速度是每时刻移动一步,上下左右,不能对角线移动,求移到安全地点的最小移动速度。思路:从原点开始搜索,如果当前点是安全的。不然的话向四个方向搜索,如果该方向的点没有搜索过,并且到达该点的时间小于那一点被破坏
2016-10-29 17:08:14 302
原创 迷宫问题(BFS)
迷宫最短路径问题#include#include#include#includeusing namespace std;#define INF 100000000#define maxn 200typedef pairP;char map[maxn][maxn];int n,m;int sx,sy,gx,gy;int d[maxn][maxn];int dx[4]={1
2016-10-26 20:18:02 384
原创 LETTERS(搜索)dfs
DescriptionA single-player game is played on a rectangular board divided in R rows and C columns. There is a single uppercase letter (A-Z) written in every position in the board. Before the begg
2016-10-26 18:23:44 371
原创 hiho 之KMP
题意:统计模式串在原串中出现了几次特别的//就像模式串ADA,原串ADADADA,存在三次,明显有重叠,因此next函数就要多算一位。模式串长度为L,那么next函数不是计算到next[L-1],而是计算到Next[L]。#includeusing namespace std;#include#include#define maxn 10001char a[maxn],b[m
2016-10-24 21:03:06 310
原创 乘法逆元
定义:满足a*k=1(mod p)的k值就是a关于p的乘法逆元。逆元存在的价值之一:当我们要求(a/b)mod p的值,且a很大,无法直接求得a/b的值时,我们就要用到乘法逆元。我们可以通过求b关于p的乘法逆元k,将a乘上k再模p,即(a*k)mod p。其结果与(a/b)mod p等价。证:(其实很简单。。。)根据b*k≡1 (mod p)有b*k=p*x+1。k
2016-10-22 12:21:21 546
转载 2016"百度之星" - 资格赛(Astar Round1)Problem A (乘法逆元)
此题为逆元的应用,直接求的话会超时大体题意:给你个字符串并且告诉你n个查询。每个查询 有起点和终点,求从起点x到终点y (ASCII码-28)乘积之和对mod 取模的结果!很明显 肯定要先预处理使得sum[i]表示从第一个点到第i个点的乘积之和!然后通过sum[y]/ sum[x-1] 就是答案!但是要通过乘法逆元来得到!就是sum[y]乘以 s
2016-10-21 20:30:32 392
原创 辗转相除法(欧几里得算法)
1.普通辗转相除法求最大公约数int gcd(int a,int b){ if(b==0) return a; return gcd(b,a%b);}2.扩展欧几里得算法求整数x和y使得ax+by=1可以发现如果gcd(a,b)!=1;无解如果gcd(a,b)==1,就可以用扩展欧几里得算法来求解:即ax+by=gcd(a,b),设int extgcd(int
2016-10-18 10:59:52 889 1
原创 A/B(逆元)
逆元定义:对于正整数和,如果有,那么把这个同余方程中的最小正整数解叫做模的逆元。一般用欧几里得扩展来做:ax+by=1;称a和b互为逆元详细扩展欧几里德算法介绍,解决该题的关键是:1、了解扩展欧几里德算法,可以运用其解出gcd(a,b)=ax1+by1中的x1、y1的值2、由题可得以下内容:n=A%9973,则n=A-A/9973*9973。又A/B=x,则
2016-10-17 21:29:46 2138
原创 All X(快速幂 + 循环节)
mod(k)x*(10^m-1)/9==c =x*10^m==9*c+x mod(k)巧妙的运用 111111=1*(10^6-1)/9#include#includeusing namespace std;long long m,x,t,c,k;long long mod_pow(long long a,long long b,long long c){
2016-10-15 14:09:50 449
转载 快速幂取模
所谓的快速幂,实际上是快速幂取模的缩写,简单的说,就是快速的求一个幂式的模(余)。在程序设计过程中,经常要去求一些大数对于某个数的余数,为了得到更快、计算范围更大的算法,产生了快速幂取模算法。我们先从简单的例子入手:求abmodc算法一:int ans = 1;for(int i = 1;i<=b;i++){ ans = ans * a;}ans = ans % c;直接
2016-10-12 16:54:53 417
原创 卡特兰数
1.小兔棋盘问题:小兔的叔叔从外面旅游回来给她带来了一个礼物,小兔高兴地跑回自己的房间,拆开一看是一个棋盘,小兔有所失望。不过没过几天发现了棋盘的好玩之处。从起点(0,0)走到终点(n,n)的最短路径数是C(2n,n),现在小兔又想如果不穿越对角线(但可接触对角线上的格点),这样的路径数有多少?小兔想了很长时间都没想出来,现在想请你帮助小兔解决这个问题,对于你来说应该不难吧!附图一张
2016-10-11 20:57:20 276
转载 Java的大数
JAVA之BigInteger用Java来处理高精度问题,相信对很多ACMer来说都是一件很happy的事,简单易懂。用Java刷了一些题,感觉Java还不错,在处理高精度和进制转换中,调用库函数的来处理。下面是写的一些Java中一些基本的函数的及其……头文件:import java.io.*;import java.util.*;imp
2016-10-11 17:19:35 1266
原创 Combinations(组合数)
CombinationsTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 9095 Accepted: 4199DescriptionComputing the exact number of ways that N things can be take
2016-10-10 09:25:52 778
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人