自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(160)
  • 资源 (12)
  • 收藏
  • 关注

原创 POJ 1166 高斯消元 疑惑的思考

不知道为什么消元的时候没选择绝对值最大的那一列就不会wa了可能是刚好避开了数据吧觉得可能刚好选择到每个a(i,i)=1 ,a(i,i)=3 (即a(i,i)=2 时就会出错)的那一行已知p是素数时,模p剩余系里每个除0以外的元素都有唯一的逆。模4时,由于4不是素数,所以不会有唯一的逆,比如2就没有逆当在消元化简到 ax=b(mod 4) 我们枚举x=0,1,2,3可能都

2013-06-06 22:08:59 893

原创 POJ 2065 高斯消元+线性模方程

消元过程为保持整数用最小公倍数。回代过程用线性模方程计算过程注意保持模n下的非负数。#include #include #include #include #include #include #include #include #include #include using namespace std;int p,n;char s[1000];int a[10

2013-06-06 16:47:46 823

原创 POJ 1487 高斯消元+模拟……坑爹题~好题

wa了整天,变换着姿势终于找到错了。。1.模拟过程,字符串的处理,字符串里包含数字,()括号,字母,数字注意是负数,会坑你爹的一开始注意到了负数,以为处理了,但是没处理好,没有在读取整个负数后才乘以-1,所以错了2.高斯消元过程,出现undefined是因为出现了 a=a 这样的式子,也就是有自由变量注意一个变量a的undefined可能导致另一变量b的undefined,只要b的

2013-06-04 20:02:32 981

原创 POJ 2454 随机化+贪心

测试人品TLE了很多次,才知道数组开小了,要乘以3,还以为自己人品为什么这么差#include #include #include #include #include #include #include #include #include #include using namespace std;int n;int ans1[66],ans2[66],ans

2013-06-03 21:42:22 1569

原创 POJ 3318 随机化测试

从来不知道可以这么玩的。。学习了#include #include #include #include #include #include #include #include #include using namespace std;#define N 510int a[N][N],b[N][N],c[N][N],s[N];int n;bool check(int

2013-06-03 20:33:09 659

原创 POJ 3150 矩阵快速幂

抄的代码。看不出矩阵快速幂,2B。。注意到这是种变换,每次都是n个元素在变来变去,数据范围很大,这应该反应到时矩阵根据大神指示,用O(n)复杂度存储空间,由于 A[i][j]=A[i-1][j-1] O(log(k) * n ^ 2)据说可以用傅里叶变换,更快,没试#include #include #include #include #include #in

2013-06-03 18:58:41 715

原创 POJ 2976 0-1分数规划入门

很久之前做了,最近做居然忘了#include #include #include #include #include #include #include #include #include using namespace std;#define ll long longdouble a[1005],b[1005];double d[1005];int mai

2013-06-03 11:44:27 849

原创 POJ 1015

偷的代码,两份代码都是可以A的,但是很奇怪,没case之间没输出空行能过。更奇怪的是,这组数据一直过不了9 66 216 104 919 817 124 710 22 145 18答案: 1 2 3 4 6 9一开始尝试,把n放在外层,m的枚举放在里层的for也没过#include #include #include #in

2013-06-03 00:41:29 684

原创 POJ 1026

很挫的代码,凑合着刚开始2B地求了最小公倍数,TLE了,其实不用,在每个循环里面各自搞定就好#include #include #include #include #include #include #include #include #include using namespace std;#define N 240#define ll long longint

2013-06-02 13:10:25 564

原创 poj 3270 置换群

置换群好题一枚2种决策:取循环内最小的数参与循环的置换,循环内有n个元素,进行n-1次;取循环外最小的数进来参与循环的置换,再交换回去#include #include #include #include #include #include #include #include #include using namespace std;#define N 1050

2013-06-02 12:36:24 778

原创 POJ 2960

求sg的时候不能用set,否则超时,终于见证到STL之慢#include #include #include #include #include #include #include #include #include using namespace std;#define N 10505int dp[N],a[N],n;int dfs(int u){ if(

2013-06-01 10:20:39 737

原创 Codeforce 301D - Yaroslav and Divisors

确定了没有方便的更新统计方法,就想是不是要一个一个更新,考虑(n/2 + n/3 + n/4 ..... n/n)其实不大,(1/2 + 1/3 + ....1/200000) 所以暴力之更新时没问题,但直接统计个数会超时,要用到logn的东西影响最终结果有两个因素: 1-n摆放的顺序和倍数;数据结构中经典的解决两个因素制约的方法是先保存查询,然后边 插入边查询设想一个查询

2013-05-16 13:30:31 991

原创 SGU 492 经典数位dp

计数时不要某个数字,求数字对应的序号或者求某个序号对应的数字解决方式是记忆化搜索long long 是肯定的,并注意n最大时对应的答案的范围原来1000000000000000000 #include #include #include #include #include using namespace std;#define ll long longll

2013-04-28 04:14:16 1032

原创 SGU487 Courier's Route

条件是:每个点有4个门,每个门都连向其他点的门,但不能连向自己1.对于两个点u,v,假如他们有边u-v,无论如何限制u和v其他门的连向,点u连通的点集(除v之外)与点v连通的点集(除u之外),限制这两个点集不连通,是不可能的---u到v是双连通的,即存在环2.可以推出任意两个点如果他们连通的,一定存在环一直不过:1.天真地写了个深搜,TLE了,但No的话相当于穷举所有路

2013-04-27 17:59:25 721

原创 Codeforce#181 div2 C,E--problem 300E,300C

E:很值得学习的方法,阶乘很大时结果不能存下,用此方法统计质因数的个数来表示又偷了别人的代码#include #include #include #include #include using namespace std;#define ll long long#define MAX 10000005int a[MAX],isp[MAX];ll cnt[MAX];

2013-04-26 04:06:32 1169

原创 POJ 3034 简单dp--注意细节

没考虑到锤子可能到达界外一直不过,从界外也能转移进来,并可能得到更优的结果想法是简单的,从前一秒的每个状态转移到下一秒的每个状态,状态数比较小,能过在处理经过时得到几分比较山寨,凑合着吧。。#include #include #include #include #include using namespace std;#define eps 1e-8int n,d

2013-04-25 19:16:02 685

原创 POJ 1185 经典dp

开始居然题目都理解错了,两个兵攻击范围重叠是允许的思路都是错的,其实就是按经典的想法,解除后效性就要把相关的会影响后面的状态对应的答案都记录下来然后就是状态压缩,学习了!!又是偷来的代码,我太挫了!//#include //#include //#include //#include //#include //using namespace std;//int n,d,

2013-04-25 16:50:41 628

原创 POJ 2947 高斯消元--判断一解多解无解

又是偷来的代码,但是第一道高斯消元,纪念下知道每条式子的结果取模后的值,求方程组,这不同于一般的高斯消元,而且答案必须为整数并在一定区间内1.由于是整数要用到gcd;2.解的判断:有解的情况都是必须满足row一下全为0一解:化简后是严格的三角矩阵多解:自由变量个数较少无解:row以下有非0的#include #include #include #inclu

2013-04-23 18:11:13 3658

原创 POJ 1925 dp

太挫了,又是从别人那里偷来的代码因为一开始想枚举楼dp,但一直无法解决后效性,到达一高楼的次数一样但甩开到达右边的横坐标不一样而且题意没有理解到,高度在h[1]时才转移到下一高楼这一题告诉我们枚举坐标也是有可能的,再加适当剪枝也许能实现还有个坑:数组要开两倍大小,因为甩开到达右边相当于镜面对称#include #include #include #include #in

2013-04-23 00:28:46 847

原创 ZOJ 3703,3700,3699

经典背包问题,处理好限制条件的优先级排序是为了让相同val,相同问题数量以及选择的时候,从ti更小的问题坐起,总的penalty会最少#include #include #include #include #include #include #include #include #include #include using namespace std;struct

2013-04-21 10:12:23 1732 2

原创 POJ 2948 经典二维dp

一开始不知道怎么解决后效性,以为自己记录状态的方式错了,实际上是转移方程想错了学习了:如果怎么dp都发觉有后效性,一定是dp的姿势不对dp[i][j] 如果采用向左的决策,要从dp[i-1][j] 转移过来,如果采用向上的决策,要从dp[i][j-1]转移过来,这样前面的方程里怎么决策才不会对后来那个方程有影响#include#include#include#includ

2013-04-18 18:23:10 668

原创 POJ 2411 记录状态的dp

和poj3254一样#include#include#include#include#include#include #include #include #include #include using namespace std;#define ll long longll dp[(1<<12)+100][13];int h,w;ll dfs(int i,int

2013-04-18 16:59:18 578

原创 POJ 3254

应该算做记忆化搜索的不种也算做一种方案#include#include#include#include#include#include #include #include #include #include using namespace std;#define mod 100000000#define ll long longll dp[(1<<13)+100]

2013-04-18 13:47:56 558

原创 POJ 1947 树形dp

知道树形dp肯定是节点与它的子节点的方程想到dp[i][j]记录的是“以i节点为根”(不仅仅是包含i节点)的子树包含j个点的答案刚开始没想到要以i节点为根记录状态,始终联想不到它和子节点的关系然后被坑到的是这是一棵有根树,边是有向的!!偷来的代码,构造的好简洁啊!!orz……很好的解决了初始化问题#include#include#include#include#incl

2013-04-17 20:58:28 597

原创 POJ 3280 dp

经典二维dp,dp[i][j]的状态是由dp[i+1][j], dp[i][j-1], dp[i+1][j-1]推出来的,找出关系就好首先要反应到状态记录的是每个子串,然后想每个状态是由哪些状态推出来面对每种状况有哪些决策,这些决策就对应着转移方程最后考虑用来更新的状态值必须是已经更新好的#include#include#include#include#include#i

2013-04-17 13:33:42 741

原创 POJ 2029 预处理

水题#include#include#include#include#include#include #include #include #include #include using namespace std;#define N 105int down[N][N],ver[N];int mat[N][N];int main (){ int n,w,h,s,

2013-04-16 23:05:46 776

原创 POJ 1085 博弈-搜索

与3317区别开,每个选手在面对当前局势最优能得到多少三角形是一样的,即之前放的边是谁放的没关系,不会影响后面结果的统计所以dp【state】表示在state下先手能得到最多多少个三角形#include#include#include#include#include#include #include #include #include #include us

2013-04-16 21:24:25 783

原创 POJ 3317 博弈-极大极小过程+记忆化搜索+剪枝

1.current player 不一定是02.TLE想到记忆化搜索,想到怎样记录状态,注意到空位不大于10个,从这里做文章:在搜索过程中,每个空位有三种情况:还是空的(0),被0填充(1),被1填充(2),用个三进制数记录(now)在搜索过程中,需要枚举还没被填充的空位,需要记录对于每个状态哪个空位还没被填充的:被填充(0),被填充(1),用二进制数记录(state)3.alph

2013-04-16 12:56:44 1667

原创 POJ 2960 博弈-简单SG

记忆化搜索,数据太水,1STL的东西真不能用,太慢,用STL并且在搜索的函数里开10000的数组就RE了,用数组写的并且在搜索的函数里开10000的数组就A了。。#include#include#include#include#include#include #include #include using namespace std;int s[1000],cnt;in

2013-04-15 21:02:27 915

原创 POJ 2891 中国剩余定理

除数不会两两互质,不能套用中国余数定理~只能不断利用线性模方程把两个式子合并#include #include #include #include #include #include #include #include #include #include using namespace std;#define ll long longll ext_gcd(l

2013-04-10 22:03:56 657

原创 POJ 2115 线性模方程

#include #include #include #include #include #include #include #include #include #include using namespace std;#define ll long long ll A,B,C,k,a,b;ll ext_gcd(ll a,ll n,ll &x,ll &y){ if(

2013-04-10 20:30:22 575

原创 poj 3308 最小割

应用到:最小割等于最大流定理技巧:割边的乘积最小,用log转化!!太好了!!#include #include #include #include #include #include #include using namespace std;int m,n,l,s,t;#define N 120#define M 2000const double INF =1000000

2013-03-31 20:54:51 666

原创 poj 2057 树形dp

主要是在策略选择上:对于一个节点,它该先往哪个子节点走比较它的两个子节点u和v:房子在u这边的概率为num[u]/ num[1] ,房子在v这边的概率为 num[v]/num[1],分别简化为num[u] ,num[v]先选u:num[u]*go[u] + num[v]*(fail[u]+2+go[v])先选v:num[v]*go[v] + num[u]*(fail[v]+2+go[u

2013-03-31 13:47:32 636

原创 poj 1054 搜索

刚没看清题目,跳必须是从外面跳进来,然后跳出去的,一直WA不止谁说是dp的,完全扯淡#include #include #include #include #include #include using namespace std;#define N 5050struct point{ int r,c;}p[N];bool mat[N][N];int r,c,n;

2013-03-26 21:38:04 652

原创 poj 1191 dp经典

#include #include #include #include #include #include using namespace std;int dp[20][10][10][10][10];int s[10][10][10][10];int mat[10][10];int n;int cal(int k,int x1,int y1,int x2,int y2)

2013-03-26 17:19:20 784

原创 poj 1286 polya

gcd里的类型一定要long long,至今想不明白,不然会一直WA#include #include #include #include #include using namespace std;#define ll long longll p[100];ll gcd(ll a,ll b){ if(b==0) return a; else gcd(b,a%

2013-03-22 14:07:03 573

原创 poj 1691 搜索

关键是解决相互制约关系,由数据量很小可知方法一定很水。。。#include #include #include #include #include #include #include #include using namespace std;struct obj{ int ux,uy,dx,dy,c;}p[20];int n;int vis[20];int

2013-03-19 09:57:29 843

原创 poj2186 有向图强连通缩点

真心不能用vector同样的代码,用vector500+ms,用邻接表32ms#include #include #include #include #include #include #include #include using namespace std;int n,m ;#define N 10500#define M 60000//vectore[N];

2013-03-13 20:10:50 887

原创 hdu4301 状态dp

#include #include #include #include #include #include #include using namespace std;#define N 1050#define mod 100000007int dp[N][N*2][2];int main (){ memset(dp,0,sizeof(dp)); dp[1][

2013-03-13 17:35:08 683

原创 hdu 4300

从(len+1)/2开始枚举,即大于等于中间点处,从len/2开始就会WA不止,这种情况是由于不同的密文字母可能对应同个明文,造成最终明文和密文overlapping together#include #include #include #include #include #include #include using namespace std;char t[2

2013-03-13 15:41:47 915

暗时间-电子书

教你运用方法时间管理时间管理时间管理时间管理时间管理运用运用运用运用运用运用

2014-03-31

机器学习 andrew 讲义

andrew 网易公开课 机器学习 讲义 andrew 网易公开课 机器学习 讲义 andrew 网易公开课 机器学习 讲义

2013-08-01

C++ 学习路线

C++ 学习路线

2013-08-01

题表ACM-poj

acm的好资料

2013-05-04

优秀网页设计素材

很好的设计素材,来自设计群。

2013-04-30

RMQ与LCA问题

算法学习

2013-03-08

数据结构 C++

数据结构 C++

2012-05-18

Visual C++面向对象编程

Visual C++面向对象编程

2012-05-12

深入浅出MFC

讲的非常深入,看的懂你就程度很好了 FJDLKSJFKLDSAFDSA FDSFDSA

2012-05-12

空空如也

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

TA关注的人

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