自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yueqiq

仗义每多屠狗辈,负心多是读书人

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

原创 hdu 1698 Just a Hook

还是线段树,区间更新问题,第一次接触,没太搞透,但感觉不是难理解,明天在草稿上模拟下code#include #include #include #include #include #include #include #include #include #include #include #include #include #include #inclu

2012-05-31 23:24:26 295

原创 poj 2886 Who Gets the Most Candies?

写代码的时间长达3个半小时,当然没刨去中间吃饭什么的........思路:先直接dfs求出最大的 p 和 f(p) 这里用到了反素数,详解请看zoj 2562那篇文章,里面有解释然后就是用线段树模拟约瑟夫,但是悲剧的是我没太搞懂出圈顺序,此处系参考而来....................code#include #include #include

2012-05-31 18:39:54 309

原创 zoj 2562 More Divisors

求反序数对于任何正整数x,记约数的个数记做g(x).例如g(1)=1,g(6)=4.如果某个正整数x满足:对于任意i(0有两条性质,没有想明白怎么推出来的 直接百度借用了性质一:一个反素数的质因子必然是从2开始连续的质数.因为最多只需要10个素数构造:2,3,5,7,11,13,17,19,23,29性质二:p=2^t1*3^t2*5^t3*7^t4…..必

2012-05-31 17:30:23 329

原创 poj 3264 Balanced Lineup

本来想刷刷水题,结果刷出问题来了,查询区间自己还是没有彻底弄透,警告!!#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #d

2012-05-30 23:40:06 229

原创 poj 2828 Buy Tickets

此题跟poj 2182基本一样,请看我的2182的那篇博客讲的很清楚代码改动在20个字符左右........#include #include #include #include #include #include #include #include #include #include #include #include #include #include #i

2012-05-30 18:04:50 453

原创 poj 2182 Lost Cows

用数组a[]记录第i头牛之前有多少头序号比它小的牛,则最后一头牛n的序号肯定是a[n]+1(因为所有的牛都在它前面);倒数第二头牛的编号肯定是把倒数第一的牛的编号删去后排在第a[n-1]+1的位置上;依次类推样例分析一下:编号 1 2 3 45;数据 0 1 2 10;最后一头编号肯定是   1;然后把 1 删除掉编号 2 3 4 5;倒数第二头的编号 就是

2012-05-30 17:40:42 324

原创 hdu 2795 Billboard

代码依然参考胡浩神:说说思路吧,因为n最大有20W,所以可以把每一行当作线段树的叶子(因为n可能小于h,所以只需要最小的那个建树就可以了),每一个叶子的值则是w;要保证 announcements 是贴在最上面的,而且是最左边的(这点无需考虑,因为是按照读入的顺序来的),要保证是贴在最上面,所以优先向左子树搜索,即当前结点的左子树值(代表左子树下有叶子的值是大于wi的)大于wi,就搜索左子

2012-05-29 21:04:52 291

原创 hdu1394 Minimum Inversion Number

此题对于我来说甚是巧妙啊 ,线段树可以这么用,这次参考了胡浩神的线段树写法:对于此题:1. 求出原始序列的逆序数2. 当把第i个数移动到序列末尾时,原来小于a[i]的逆序数数将不在是逆序数,大于a[i]的非逆序数将成为逆序数显然在(0---n-1)序列中,比它小的数有a[i]个(0---a[i]-1);比它大的数有n-a[i]-1个(a[i]+1----n-1);下面解

2012-05-28 23:50:08 272

原创 poj 3258 River Hopscotch

这次写的二分代码有问题,wa了无数次,最后稀里糊涂的A了,请勿参考本菜代码#include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long#define Vi

2012-05-28 16:55:45 307

原创 poj 3273 Monthly Expense

这好像是做的第一道二分,当时完全没思路,参考别人代码以后豁然开朗!#include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long#define Vi vecto

2012-05-28 16:52:02 268

原创 关于搜索

虽然学了一阵搜索,但是至今却不能顺顺的写下一个DFS,归根是因为自己的见识太少,一个思路很清晰的搜索却总是卡在一些小问题上,很多时候连BUG在哪都找不到,跟别人的代码比对也发现不了,末了便放弃了,只能照别人代码重敲。这样是提高不了的,以后尽量做一个题吃透一个题

2012-05-28 16:33:12 268

原创 poj 3414 Pots

可以说搞这个题搞了近5个小时,中间睡了个午觉整理了下思路才有心情再敲的,不得不说poj在极限数据这方面真的很Nb,而且我更没有想到string的操作会这么慢,有TLE的同学可以尝试一下自己记录path;bfs---无剪枝扩张。。。code如下:#include #include #include #include #include #include #include

2012-05-28 16:24:39 238

原创 poj 3414 Pots(TLE代码),回头继续搞

我比较懒,直接用string记录路径,可是是因为这个地方超时。。。#include #include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long#def

2012-05-28 12:57:09 348

原创 hdu 1969 Pie

经典的二分,思路清晰,启发深刻#include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long#define Vi vector#define

2012-05-27 14:40:44 351

原创 hdu 1754 I Hate It

#include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long#define Vi vector#define Si set#define readf fr

2012-05-27 14:39:42 237

原创 hdu 1166 敌兵布阵

线段树的模版 没什么思想#include #include #include #include #include #include #include #include #include #include #include #include #include #define LL long long#define Vi vector#define Si set#def

2012-05-27 14:32:35 274

原创 hdu1757 A Simple Math Problem

题目自己找吧,不贴了思路:构造如下矩阵a0a1a2a3a4a5a6a7a8a9 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0

2012-05-27 14:31:06 300

原创 zoj 2974 Just Pour the Water

思路:由于M相当之大,因此可以构造矩阵快速幂来求解mat[i][j]表示第i个被子给第j个被子的水的百分比,如果k==0,则全给自己,mat[i][i]=1.0;代码如下:#include #include #include #include #include #include #include #include #define MAX 31using namespa

2012-05-27 14:29:45 527

原创 poj 3233 Matrix Power Series

第一次接触矩阵这东西,不怎么会;矩阵乘法:自学百度;快速幂:自学百度;k为偶数时:A^1+A^2+..+A^k==(A^1+..+A^(k/2))*A^(k/2)+(A^1+...+A^(k/2));k为奇数时:A^1+A^2+..+A^k==(A^1+..+A^(k/2))*A^(k/2+1)+(A^1+...+A^(k/2))+A^(k/2+1);代码如下#incl

2012-05-27 14:28:40 246

原创 poj1845 Sumdiv

题意:求A^B的值的所有因子的和模9901,例如2^3=8  =>  1+2+4+8=15。最后答案为 15。分析:先将A^B分解成素因数形式:A^B = (P1^k1) + (P2^k2) + (P3^k3) + ...那么A^B所有因子之和就是:S = (1 + P1^1 + P1^2 + P1^3 +...+ P1^K) * (1 + P2^1 + P2^2 + P2

2012-05-27 14:25:00 256

原创 hdu1848 Fibonacci again and again

思路:求1000以内的每个数的sg值,最后异或为0则先手必败,否则先手输因为m,n,p都小于1000,所以只要求前15个斐波那契数就可以了 ,打表解决;#include #include #include #include #include #include using namespace std;int fb[]={1,2,3,5,8,13,21,34,55,89,

2012-05-27 14:10:53 266

转载 博弈问题及SG函数(真的真的非常灰常经典)!

博弈问题若你想仔细学习博弈论,我强烈推荐加利福尼亚大学的Thomas S. Ferguson教授精心撰写并免费提供的这份教材,它使我受益太多。(如果你的英文水平不足以阅读它,我只能说,恐怕你还没到需要看“博弈论”的时候。)Nim游戏是博弈论中最经典的模型(之一?),它又有着十分简单的规则和无比优美的结论,由这个游戏开始了解博弈论恐怕是最合适不过了。Nim游戏是组合游戏(

2012-05-27 14:09:58 455

原创 poj 2251 Dungeon Master

#include #include #include #include #include #include using namespace std;bool map[40][40][40];struct pos{ int x,y,z; int min;}q[50000];pos s,e;int x,y,z;bool flag;bool bfs(){

2012-05-27 14:08:34 258

原创 Uva Accordian Patience

这个题确实让我恶心到了,搞了两天,各种TLE,蛋碎,学C++以来第一次用STL ,就当是熟悉一下吧,不过codeblocks的提示确实是有些问题。。。思路:直接模拟,每次移动之后一定要从头开始才能确保按顺序移动,直接模拟一定要用scanf输入,这很关键....基本上算是卡着时间AC的这个题确实让我恶心到了,搞了两天,各种TLE,蛋碎,学C++以来第一次用STL ,就当是熟悉一下吧,不过

2012-05-27 14:07:20 334

原创 poj 2488 A Knight's Journey

题意:一个p*q的棋盘,从一个点开始,骑士每次漫游都会在一个方向移动两个格子,并在垂直的方向移动一个格子。问题是,有没有这样一种漫游方法,每次骑士经过的地方都不同并且能够遍历整个棋盘?思路:深搜,用map[][]来记录走过的状态,如果map[i][j]可以走,将map[i][j]标记为false,进行下一步;如果走到最后不成功,则回溯,把map[i][j]改回true的状态;边界:如果

2012-05-27 14:05:52 233

原创 hdu 1010 Tempter of the Bone

深搜 :从起点开始向下搜索,当搜到终点位置的时候将标志赋值为真,同时结束搜索!(很重要)!当走过一个点的时候,将这个点赋值为'X',也就是墙,如果走遍所有的点标志仍然为假,开始回溯,回溯时一定要将赋值为'X'的标志重新赋值为可行的状态'.';剪枝非常重要:1.当所有可以走的步数小于所给的T的时候,必定无法逃脱,此时不必进行搜索;2.当走的步数与T奇偶性不同的时候,也必定不可逃脱

2012-05-27 14:03:50 246

原创 acm学习入门指南

首先要看一些基础的算法书籍,把基本的算法搞懂。像递归、二分、宽搜、深搜、简单的图论、数论、简单的组合数学。重点根据书上的例题理解算法的实质、思想,能做到有一定领悟。这时需要做一些题目来巩固了。先可以做搜索题,搜索是博大精深的,诸多细节技巧都需要靠平时的积累领悟,根据自己练习的目的挑一些题练习。然后可以做简单的数学题,对组合数学、数论有个大致的概念。再然后可以做DP 类题目了。DP 也是非一

2012-05-27 14:02:52 772

转载 poj 1061 青蛙的约会

这题算是我接触ACM的第二题(A+B是第一题了),当时并不知道此题有多深奥的算法,英文又不好,翻开POJ的第一版就发现这题中文题,为此我几乎深深陷入了无底洞,用了个枚举,很显然的一直TLE(当时并不知道TLE这玩意)。苦思冥想一星期后,还是决定求助度娘。。。。Orz 发现网络上都说用扩展欧几里得算法,欧几里得?似乎很深奥,查一下,原来就是辗转相除法。。。囧,就是辗转相除的升级版本。。。

2012-05-27 14:00:52 325

原创 约瑟夫问题-O(n)算法实现

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

2012-05-27 13:54:03 542

转载 高斯消元

突然发现,学了线性代数,高斯似乎很简单。郁闷。高斯消元法,是线性代数中的一个算法,可用来求解线性方程组,并可以求出矩阵的秩,以及求出可逆方阵的逆矩阵。高斯消元法的原理是:若用初等行变换将增广矩阵 化为 ,则AX = B与CX = D是同解方程组。所以我们可以用初等行变换把增广矩阵转换为行阶梯阵,然后回代求出方程的解。以上是线性代数课的回顾,下面来说说高斯消元法在编程中的

2012-05-27 13:50:09 1289

原创 Fzu 1607 Greedy division

做的第一个素数筛题,两天终于过了.........思路:开一个大数组保存每个数的最小素因子,因子数f(N)就是所有素因子的次数加1相乘N=p1^x1 + p2^x2 + .... + pk^xk;则  f(N)=(x1+1)*(x2+1)*.....*(xk+1);测试数据很多,用cin,cout会超时,所以用scanf,printf输出.........#

2012-05-27 13:47:30 330

转载 二倍压缩素数筛法

求1-MAX之间的素数,以及它们的个数,大家都知道,在偶数中,只有2是素数,所以,我们可以认为偶数都不是素数,直接掠过,最后再把2添加进去这样,我们可以只记录奇数的状态,p[n],就表示2*n+1是不是素数=========================================表示域:表示元素:n=====================||=============

2012-05-27 13:43:18 515

转载 有关除数的一些性质

1.如何马上回答60有多少个除数? 首先把已知数分解成“基本构件”或者说其质因子乘幂的连乘积,而分解法时唯一的。例如24=2^3*3, 60=2^2*3*5,接着,再把每个质因子的乘幂加上1,并连乘起来。例如,在数24的质因子乘积中,2与3的 乘幂分别为3与1,从而就有4*2=8个除数,而对60来说,则有3*2*2=12个除数。 即N=p1^a1*p2^a2...pn^an,则N的

2012-05-27 13:39:07 1077

空空如也

空空如也

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

TA关注的人

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