自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (2)
  • 收藏
  • 关注

原创 Bellman_Ford uva 11280 - Flying to Fredericton

<br />//看一下bellman_ford:其实他就是通过不断的松弛构造一颗以源点为根的最短路径树,原算法中第i次松弛结束后一定能生成从树根到结点长度不超过i的最短距的点中的最短距离(说的好绕哟)<br />//注意,没优化的bellman并不保证松弛i次后每一个距离都是路径长度为i的最短的,因为它松弛边的时候无序,可能得到>i次的松弛结果<br />//所以使用spfa标记点的距离,,还有需要注意的是我们要开二维数组标记,,因为显然我们无法确定一个更短权 和 一个更短路 对它所邻接点更新时谁会使得最终

2011-04-21 11:18:00 1270

原创 zoj 3497 Mistwald

//11年浙江省赛K题,,比赛时候没出,当时老想的是判环然后组合//watashi是这么说滴:"赛前,裁判们普遍认为这题属于中档题,或者说是银牌题。结果是,现场所有能过这道题的队伍都凭借7+AC拿到了金牌。很多队伍前期都用没什么前途的方法尝试C和E,直到过K的队伍多起来才注意到这道中档题。我觉得认清哪题该搞,哪题该先放着,是很重要的一种能力。当然,大多数队伍还是习惯跟风,而这次省赛,实力很强的队伍太少,造成了比赛中期无风可跟的悲剧。".//就题目而言涉及到 Strassen矩阵乘法 + 快速计算乘方的算法

2011-04-19 09:04:00 1290

原创 计算图顶点之间的通路数 和 连通性

图 通路数 连通性

2011-04-19 09:01:00 4568

原创 uva 11377 - Airport Setup

<br />//注意了一种情况: 城市 x 没有airpot,但是有无聊人想从x到x 那么结果不是1,而是0<br />//排除了这种坑爹情况后就是简单的Dijkstra了<br />/*ID:1192432PROG: castleLANG: C++*/#include <iostream>#include <string>#include <map>#include <vector>#include <memory.h>#include <cstdio>#inc

2011-04-18 17:53:00 1443

原创 Strassen矩阵乘法 + 快速计算乘方的算法 + 矩阵的次幂

矩阵乘法是线性代数中最常见的运算之一,它在数值计算中有广泛的应用。若A和B是2个n×n的矩阵,则它们的乘积C=AB同样是一个n×n的矩阵。A和B的乘积矩阵C中的元素C[i,j]定义为: 若依此定义来计算A和B的乘积矩阵C,则每计算C的一个元素C[i,j],需要做n个乘法和n-1次加法。因此,求出矩阵C的n2个元素所需的计算时间为0(n3)。60年代末,Strassen采用了类似于在大整数乘法中用过的分治技术,将计算2个n阶矩阵乘积所需的计算时间改进到O(nlog7)=O(n2.18)。首先,我们还是需要假设

2011-04-18 11:34:00 23202

原创 uva 714 Copying Books

//真背背啊,,以前做过这个题,,当时不会,弄半天是个经典的"最大值最小化"问题,,主要出错在忘判左右界了,//比如1000000 1 1 1分3份得时候 要注意左界; 1 2 3 4 5 分成5分的时候时候要注意右界//得到的经验就是 如果当找不到code 的bug 时候,考虑边界情况,,数据的边界或者极限值可能是根救命稻草哟哟哟哟哟哟哟#include #include #include #include #include #include #include #include

2011-04-13 10:54:00 1441

原创 罗马数字转化 2.2.1

<br />罗马数字转换一看就二了, usaco上说的不也明白<br />其实我们可以这么想:<br /> <br />1.罗马数字是没有进制的,它是由较小数相加组成的较大数的(也使得表示大数很麻烦,后人抛弃罗马数的原因).<br />2.数字总是按照递减的顺序排列的<br />3.最多3个相同的数字组成一个10^n数,比如III,XXX,etc.<br />4.可以使用减规则,比如4表示成IV ,90表示成 XC,这点很重要,有了这个我们只要从大数向小数枚举的时候总可以保证上述的限制3成立<br />5.

2011-04-13 10:16:00 1365

原创 各种收尾

2011-04-071.剪枝题 ZOJ 1909//关键在于对数组的排序,,然后 确定一个 尽可能向前推进的 启始枚举位置,这样能减掉大约一半的结点 (相当于把每个pos 点左边的全部减掉)//做的时候都想到排序了就差一点点了,,无奈时间不够了 ,几次交完气势没了,555555,看来剪枝是个弱项#include #include #include #include #include #include #include #include #include #include

2011-04-07 15:44:00 541

原创 数组去重 usaco Prime Palindromes

<br />//一个有用的方法就是slt中的unique函数的实现,它基于三个指针,first, last , , result;<br />//其中first 指向第一个不和result 内的值相等的位置 ; last 作为哨兵位置 ;; 而result 作为已经判定不重复点的最后一个位置<br />template <class ForwardIterator> ForwardIterator unique ( ForwardIterator first, ForwardIterator last

2011-04-06 09:20:00 514

原创 usaco PROB Arithmetic Progressions

<br />//注意以后枚举的时候应该把数小的枚举量放在外层,这样同样的剪枝策略会减去大的枚举量,比如这题可以先枚举首项 再枚举公差<br />//有的时候打表很神奇的 ,,找规律杠杠的 ,,,得有个善于发现美的眼睛

2011-04-05 22:23:00 496

原创 胃病 治疗

一顿狂查,先记下来再说:1.嗳气:治疗烧心、嗳气的方法以指压胸骨和肚脐连接线中央的“中脘穴”,颇具效果。一边吐气一边用拇指在此用力强压6秒钟,重复5次时,胸部的难受感就消失了。2..规律饮食:研究表明,有规律地进餐,定时定量,可形成条件反射,有助于消化腺的分泌,更利于消化。 .定时定量:要做到每餐食量适度,每日3餐定时,到了规定时间,不管肚子饿不饿,都应主动进食,避免过饥或过饱。   细嚼慢咽:以减轻胃肠负担。对食物充分咀嚼次数愈多,随之分泌的唾液也愈多,对胃黏膜有保护作用   馒头可以养胃,不妨试试作为主

2011-04-05 21:29:00 825

原创 博弈论初涉

1.poj 2075 Nim//瞬秒只要发现要取得那个堆是取后数字是p-positon 当且仅当 异或值小于a[j]#include #include #include #include #include #include #include #include #include #include #include using namespace std;const int MAX=1005,INF=1>n,n){ c=0;

2011-04-05 13:48:00 589

原创 经典的Nim游戏 博弈经典模型 UVa 10404 - Bachet's Game

<br />//简单 经但 动规做这个的时候只需把自己当一个人 自己玩自己着做 <br />#include <iostream>#include <cstdio>#include <memory.h>using namespace std;const int MAX=1000005,maxM=11;int m[maxM],f[MAX];int main(){ freopen("i.txt","r",stdin); int n,nnn;//flag;

2011-04-05 01:00:00 917

原创 uva Boxes 11003

<br />//f[i][j]表示从 1~n 时第i层的含有 j  个 boxes 时候的最小重量<br />//显然,f[i][j]=min{f[i-1][j],(f[i-1][j-1]+w[i])},但是要注意,因为<br />//任意一个box上的所有boxes重量和不能超过它的载重, 所以更新<br />//时要先判断f[i-1][j-1]<=c[i];<br /> <br />#include <iostream>#include <cstdio>#include <cstring>#

2011-04-04 23:27:00 767

原创 uva 11456

<br />//没啥说的 看出来了LIS+LDS就能瞬秒<br />#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <vector>#include <queue>#include <map>#include <algorithm>#include <memory.h>#include <cmath>#include <cstdlib>using n

2011-04-04 23:19:00 781

原创 uva 103 - Stacking Boxes

//可以使用佳哥介绍的DAG动规,不过麻烦些//建议使用LIS ,那么排序函数Cmp()成了以问题关键, 可以把每个box的值从左到右作为比较的关键字, 这样人为的赋予一个优先级.由于这些集合相互之间无序,我们需要先找到一种排序方法使得这些集合的顺序满足无后效性。这牵涉到如何判断两个集合的大小。#include #include #include using namespace std;struct Box{ int len,a[12],num; bool operato

2011-04-04 23:17:00 841

原创 最大子序列和问题 二维最大子序列核问题及其优化

int maxSubSum(const int &n){//n is the length of the sequence int maxSum = a[0],thisSum = 0; for(int i=0;i maxSum) maxSum = thisSum; else if(thisSum 1.不难看出时间界是O(n)的.2.一个明显的结论是,如果a[i]是负的,那么他不可能代表最有序列的起点,因为任何包含以a[i]的子序列都可以通过a[

2011-04-04 15:21:00 705

原创 约瑟夫环的数学方法

<br />无论是用链表实现还是用数组实现都有一个共同点:要模拟整个游戏过程,不仅程序写起来比较烦,而且时间复杂度高达O(nm),当n,m非常大(例如上百万,上千万)的时候,几乎是没有办法在短时间内出结果的。我们注意到原问题仅仅是要求出最后的胜利者的序号,而不是要读者模拟整个过程。因此如果要追求效率,就要打破常规,实施一点数学策略。  为了讨论方便,先把问题稍微改变一下,并不影响原意:  问题描述:n个人(编号0~(n-1)),从0开始报数,报到(m-1)的退出  ,剩下的人继续从0开始报数。求

2011-04-01 10:03:00 910

基于OpenGl的Bezier曲面的简洁实现

1.bezier曲面 2.nNumPoints 和 N 变量控制阶数 3.ctrlPoints 是控制点 4.运行时按‘-’ 和 ‘+’ 可以旋转曲面!

2012-06-09

空空如也

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

TA关注的人

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