自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

JIBANCANYANG

并非所有流浪者都迷失了自我。

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

原创 UVa 10006 快速幂运算

知识补充: 如果a和b关于m同于,那么(a - b )是m的整数倍。 负数取余运算:不同的语言有不同的方法,其中C和JAVA是按第一个数的符号确定结果的符号,C++则要依据系统而定。 取余运算的发展:1.(a+b)%p=(a%p+b%p)%p1.(a + b) \% p = (a \% p + b \% p) \% p2.(a∗b)%p=(a%p∗b%p)%p2.(a * b) \% p

2015-07-31 16:53:16 566

原创 《挑战程序设计竞赛》 大区间内素数的个数

题意: 给一个区间边界值很大的区间,但是区间大小较小,求出该区间内所有质数个数。 知识补充: 因数枚举:分解一个数n,至于要从1 枚举到 n−−√\sqrt n 即可,然后把i和 n / i 当做因数加入vector 整数分解(把一个整数枚举出其质数基连乘的形式):从2开始枚举质数基,然后每次把该整数尽可能的被当前质数除去最大次数,这样该整数就会变小,极大减少枚举量。注意和map搭配使用,记录每

2015-07-28 16:59:49 1327

原创 《挑战程序设计竞赛》 扩展欧几里得算法 + SPFA

知识补充: SPFA算法:Bellman-Ford算法的优化算法,方法是: 1.把当前点(最开始是起点)入队,并将标记是否在队列中的visit数组的当前点设为true。

2015-07-28 13:59:09 724

原创 poj3169 差分约束系统

题意: 从1到n,n个数,从左向右一次排列。给定两种形式的约束条件: 1.xix_i与yiy_i的最大距离为dkd_k 2.xix_i与yiy_i的最小距离为dkd_k 问满足这些限定条件的情况下,数1和n的最大距离是多少?(若约束条件相互矛盾则输出-1,若最大距离可以为无穷大则输出-2)知识补充:差分约束系统的概念:由n个变量和m个约束条件(实数)组成,且都是形如:xi−yj≤bk(x,y为

2015-07-25 18:07:34 860 5

原创 poj 3723 Kruskal最小生成树

题意: 一堆男女加进一个组,每人的加入费用是10000元。男女之间存在一种亲密度,在加入一个人的时候,ta的加入费是10000减去已经入组的异性中和亲密度最大的。问以某种顺序入组,的最小总费用是多少? 思路: 主要是把这些亲密关系看做无向图,然后要以最小的代价包含所有人,显然是最小生成树。我的做法是,先把有亲密关系的那些人建立无向图,然后求出最小生成树。剩下的人入组费统一10000元。 知识补充:

2015-07-24 11:49:58 750

原创 Codeforces Round #313 (Div. 2) 解题报告

A. Currency System in Geraldion: 题意:有n中不同面额的纸币,问用这些纸币所不能加和到的值的最小值。 思路:显然如果这些纸币的最小钱为1的话,它就可以组成任意面额。如果这些纸币的最小值大于1,那么它所不能组成的最小面额就是1.所以自学求最小值即可。 我的代码: #include <set> #include <map> #include <cmath> #includ

2015-07-24 11:30:07 568

原创 poj 1979 dfs

水过,注意边界不能超出。#include <iostream> using namespace std; int n, m, sx, sy, dir[4][2] = {0, -1, 0, 1, 1, 0, -1, 0}, count; char diagram[23][23];void get_diagram(void) { for (int i = 0; i < n; i++) {

2015-07-22 21:56:10 624

原创 poj 2139 Floyd-Warshall算法求最短路

题意:不想说,这个题意思了,含糊不清=-= Dijkstra算法,无法计算有负边的图,原因是有负边的图存在是会打乱Dijkstra算法的前提,当前优先队列取出点的距离为起点到该点的最小距离,因为如果后面有负边这个距离会更小。除此之外Bellman-Ford算法和Floyd-warshall算法都可以计算有负边的图,且判断是否有负圈。 Floyd-Warshall算法:该算法用到了动态规划归约的思想

2015-07-22 11:16:29 677

原创 poj 3255 最短路和次短路

题意: 求从起点到终点的次短路 Bellman-Ford算法: 把有向图的边存起来,然后每次扫描所有边,来更新起点到每个点的最短路,当这一次扫描,一次更新都没有的时候,说明所有顶点的最短路已经求得。复杂度是O(|E|∗|V|)O(|E|*|V|)。根据这个思想还可以来判断图中存不存在负圈。 Dijkstra算法(戴克斯特拉): 1.初始所有顶点都是未使用过,且除了起点最短距离为0外,所有顶点最短距离

2015-07-21 11:45:32 764

原创 hihocoder #1163 : 博弈游戏·Nim游戏

题意:有k堆石子,每次选择一堆,在这堆中取至少一个石子,第一个无石子可取的人为输。 思路:经典游戏,直接有结论:如果这些堆的石子数为:a1,a2,a3…an.那么a1到an的异或为0,则先手有必败策略,否则先手有必胜策略。 ###代码: #include <set> #include <map> #include <cmath> #include <stack> #include <queue>

2015-07-20 22:38:11 690

原创 SOJ 4445 2015四川省赛模拟题

背景:赛场上就是因为没开这道题,而没拿到银,回来A了,感觉代码能力还是很弱,一定要先想好再敲,而且注重代码的函数化,这样无论是观感,还是调试都要好很多,逻辑要清晰,看代码要仔细,提交之前通读代码。 题意:起点在原点的frog,开始向右运动,且碰到障碍物就右转,问转多少次? 思路:关键是图的大小范围是10910^9,无法存下,只有用类似链表的方法来存图。这里用了两个容器,一个以X为基准,一个一Y为基准

2015-07-20 19:31:33 1487 3

原创 poj 2059 单调栈

题意:求柱状图中最大矩形面积。 单调栈:顾名思义就是栈内元素单调递增的栈。每次插入数据来维护这个栈,如果当前需要插入的数据小于栈顶的元素,那就一直弹出栈顶的元素,直到满足当前需要插入的元素大于栈顶元素为止。可以容易求出某个数左边或右边,第一个大于或小于它的数,且复杂度是O(n)O(n)。 思路:容易先想到一个好的枚举方式:以当前柱状为扩展点,往左边和右边扩展,当遇到一个比当前柱状小的柱状时停止扩展,

2015-07-20 10:59:27 779

空空如也

空空如也

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

TA关注的人

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