<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[~飞呀，飞~]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ahfywff</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ahfywff]]></copyright><item><title><![CDATA[HDU 4442 Physical Examination【2012金华A题，贪心】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/8125126</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/8125126</guid><author>ahfywff</author><pubDate>Mon, 29 Oct 2012 17:24:16 +0800</pubDate><description><![CDATA[这题真不应该花了那么多时间。当时有了一个想法，但是我没有顺着这个想法做下去。后来还是zz_1215那样做了，果断AC。他说：“我不知道为什么这样，但哥就是AC啦！”
其实是这样的：
假设已经花了t秒，而现在有两个项目可选，所需时间分别为a1, b1和a2, b2。
先选项目1再选项目2所需时间为：t1 = a1+b1*t + b2*(a1+b1*t+t)+a2 = a1+a2+(b1+b2)]]></description><category></category></item><item><title><![CDATA[POJ 1509 Glass Beads【后缀自动机、最小表示法】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/8045600</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/8045600</guid><author>ahfywff</author><pubDate>Sun, 07 Oct 2012 17:13:32 +0800</pubDate><description><![CDATA[此题为最简单的后缀自动机的应用。

#include 
#include 
#include 
#include 
#include 

using namespace std;

const int maxn = 10010;

struct SamNode {
    int ch[26];
    int par, len;
    void Init() {
        par =]]></description><category></category></item><item><title><![CDATA[SPOJ 3261. Race Against Time（RACETIME) 【线段树套SBT】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/8040423</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/8040423</guid><author>ahfywff</author><pubDate>Thu, 04 Oct 2012 22:14:47 +0800</pubDate><description><![CDATA[http://www.spoj.pl/problems/RACETIME/
题意：1、修改某个数；2、求区间内小于等于某个数的数有多少个。

#include 
#include 
#include 
#include 
#include 

using namespace std;

const int maxn = 100010;

struct Node {
    int key,]]></description><category></category></item><item><title><![CDATA[POJ 3481 Double Queue【SBT】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/8026909</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/8026909</guid><author>ahfywff</author><pubDate>Thu, 27 Sep 2012 23:50:28 +0800</pubDate><description><![CDATA[http://poj.org/problem?id=3481

该SBT模板只实现了一些简单的操作，我会不断完善其它功能。
#include 
#include 
#include 
#include 
#include 

using namespace std;

const int maxn = 100010;

struct Node {
    int key, val;]]></description><category></category></item><item><title><![CDATA[HDU 3971. Play With Sequence【线段树+排序】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/8019139</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/8019139</guid><author>ahfywff</author><pubDate>Wed, 26 Sep 2012 00:13:42 +0800</pubDate><description><![CDATA[http://acm.hdu.edu.cn/showproblem.php?pid=3971
题意：对有n(0=l且=l且
解法：首先可以想到线段树，线段树的每个节点存当前区间的最大值和最小值，当然还有延迟标记。但是，如果就只是这样做，还是会TLE。由于每次更新是将>=l且
#include 
#include 
#include 
#include 
#include 

using na]]></description><category></category></item><item><title><![CDATA[HDU 4348. To the Moon【可持久化树状数组】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/8018480</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/8018480</guid><author>ahfywff</author><pubDate>Tue, 25 Sep 2012 20:38:02 +0800</pubDate><description><![CDATA[http://acm.hdu.edu.cn/showproblem.php?pid=4348


#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

const int maxn = 100010;
int n, m;
struct Node {
    long long d,]]></description><category></category></item><item><title><![CDATA[SPOJ 375. Query on a tree【树链剖分】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7993444</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7993444</guid><author>ahfywff</author><pubDate>Tue, 18 Sep 2012 21:00:39 +0800</pubDate><description><![CDATA[http://www.spoj.pl/problems/QTREE/
给一颗树，每条边有一个权值。有两种操作：1、修改某条边的值；2、询问a、b两点路径上边权的最大值。
树链剖分。
#include 
#include 
#include 
#include 
#include 
#include 

using namespace std;

const int maxn = 10010;]]></description><category></category></item><item><title><![CDATA[ZOJ 3018 Population【二维线段树四分动态建树】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7977071</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7977071</guid><author>ahfywff</author><pubDate>Thu, 13 Sep 2012 23:37:05 +0800</pubDate><description><![CDATA[Population

 
Time Limit: 10 Seconds      
Memory Limit: 32768 KB 

 
It is always exciting to see people settling in a new continent. As the head of the population management office, you are s]]></description><category></category></item><item><title><![CDATA[HDU 4286 Data Handler【Splay Tree】【2012年天津网络赛1009】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7960807</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7960807</guid><author>ahfywff</author><pubDate>Sun, 09 Sep 2012 17:51:21 +0800</pubDate><description><![CDATA[我用伸展树过的这题，一直在TLE和RE之间徘徊。。。
以下代码用C++交可以AC，G++会RE的。

#include 
#include 
#include 
#include 
#include 
#pragma comment(linker, "/STACK:102400000,102400000")
using namespace std;

const int maxn = 100]]></description><category></category></item><item><title><![CDATA[POJ 1084 Square Destroyer【Dancing Links重复覆盖】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7941940</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7941940</guid><author>ahfywff</author><pubDate>Tue, 04 Sep 2012 14:27:39 +0800</pubDate><description><![CDATA[Square Destroyer




Time Limit: 1000MS
 
Memory Limit: 10000K


Total Submissions: 2695
 
Accepted: 1101




Description

The left figure below shows a complete 3*3 grid made with]]></description><category></category></item><item><title><![CDATA[HDU 3498 whosyourdaddy【Dancing Links重复覆盖】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7940737</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7940737</guid><author>ahfywff</author><pubDate>Tue, 04 Sep 2012 09:59:02 +0800</pubDate><description><![CDATA[有n个单位的敌人，对某个敌人进行攻击时该敌人以及与其直接相邻的敌人都会被消灭。问消灭所有敌人所需的最少攻击次数。
重复覆盖问题。我把此题贴出来是想说剪枝优化很有必要，一个小细节就能决定是TLE还是AC。
#include 
#include 
#include 
#include 
#include  

using namespace std;

const int maxn = 60*60]]></description><category></category></item><item><title><![CDATA[HDU 2295 Radar【二分+Dancing Links重复覆盖】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7940410</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7940410</guid><author>ahfywff</author><pubDate>Tue, 04 Sep 2012 08:35:12 +0800</pubDate><description><![CDATA[重复覆盖不同于精确覆盖，要求是在0/1矩阵中选择最少的行使每一列至少有一个1。进行重复覆盖时要使用估价函数来剪枝。
这题二分雷达半径，找到能将所有城市覆盖的最小半径即可。

#include 
#include 
#include 
#include 
#include  

using namespace std;

const int maxn = 50*50 + 10;
const i]]></description><category></category></item><item><title><![CDATA[HDU 4069 Squiggly Sudoku【Dancing Links精确覆盖】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7940402</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7940402</guid><author>ahfywff</author><pubDate>Tue, 04 Sep 2012 08:26:58 +0800</pubDate><description><![CDATA[跟普通的数独有一点点不同，先预处理一下再用Dancing Links进行精确覆盖即可。
#include 
#include 
#include 
#include 

using namespace std;

const int maxn = 9*9*9*9*9*4 + 10;
const int oo = 1 << 30;
const int maxrow = 9*9*9 + 10;
co]]></description><category></category></item><item><title><![CDATA[HDU 2829 Lawrence【斜率优化dp】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7922605</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7922605</guid><author>ahfywff</author><pubDate>Thu, 30 Aug 2012 09:33:03 +0800</pubDate><description><![CDATA[题意：大概就是给你n(1
将“4 5 1 2”分成一组得到的价值为：4*5 + 4*1 + 4*2 + 5*1 + 5*2 + 1*2 = 49；
将“4 5 1 2”分成“4 5”和“1 2”两组得到的价值为：4*5 + 1*2 = 22；
将“4 5 1 2”分成“4”和“5 1 2”两组得到的价值为：0 + 5*1 + 5*2 + 1*2 = 17。


分析：本题可以用动态规划]]></description><category></category></item><item><title><![CDATA[HDU 4258 Covered Walkway【斜率优化dp】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7921809</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7921809</guid><author>ahfywff</author><pubDate>Wed, 29 Aug 2012 20:44:46 +0800</pubDate><description><![CDATA[这题跟HDU3507差不多。
#include 
#include 
#include 
#include 
#include 

using namespace std;

const int maxn = 1000010;
int n;
__int64 c, x[maxn];
__int64 dp[maxn];
int q[maxn], head, tail;

__int64 dy(int]]></description><category></category></item><item><title><![CDATA[HDU 3507 Print Article【斜率优化dp】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7921768</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7921768</guid><author>ahfywff</author><pubDate>Wed, 29 Aug 2012 20:40:03 +0800</pubDate><description><![CDATA[斜率优化dp，这篇文章讲的很好。
#include 
#include 
#include 
#include 
#include 

using namespace std;

const int oo = 1LL << 62;
const int maxn = 500010;
__int64 c[maxn], sum[maxn];
__int64 dp[maxn];
int q[maxn],]]></description><category></category></item><item><title><![CDATA[Codeforces#135(div.2) E.Parking lot【线段树】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7918068</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7918068</guid><author>ahfywff</author><pubDate>Tue, 28 Aug 2012 23:07:34 +0800</pubDate><description><![CDATA[E. Parking Lot


time limit per test
3 seconds


memory limit per test
256 megabytes


input
standard input


output
standard output



A parking lot in the City consists of n park]]></description><category></category></item><item><title><![CDATA[HDU 2993 MAX Average Problem【斜率优化dp】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7916863</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7916863</guid><author>ahfywff</author><pubDate>Tue, 28 Aug 2012 16:59:21 +0800</pubDate><description><![CDATA[给由n(n=k的子序列的平均值的最大值。
本题O(n^2)的dp算法比较好想，但是n的范围较大，会超时，所以，必须进行优化。这里用到的是斜率优化，《浅谈数形结合思想在信息学竞赛中的应用》这篇论文中有这一题的详细介绍。
#include 
#include 
#include 
#include 
#include 

using namespace std;

const int maxn =]]></description><category></category></item><item><title><![CDATA[HDU 3401 Trade【单调队列+dp】]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7912866</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7912866</guid><author>ahfywff</author><pubDate>Mon, 27 Aug 2012 16:49:36 +0800</pubDate><description><![CDATA[题意：已知股票每天的买入和卖出价格、买入上限和卖出上限以及最多能持有的股票数，问n天后的最大收益是多少。

#include 
#include 
#include 
#include 
#include 

using namespace std;

const int oo = 1 << 30;
const int maxn = 2010;
int tcase;
int t, maxp,]]></description><category></category></item><item><title><![CDATA[HDU 4262 Juggler（线段树）]]></title><link>https://blog.youkuaiyun.com/ahfywff/article/details/7907222</link><guid>https://blog.youkuaiyun.com/ahfywff/article/details/7907222</guid><author>ahfywff</author><pubDate>Sat, 25 Aug 2012 17:20:12 +0800</pubDate><description><![CDATA[2012 ACM/ICPC Asia Regional Online Warmup 1006题


#include 
#include 
#include 
#include 
#include 

using namespace std;

const int maxn = 100010;
int sum[maxn<<2];
int pos[maxn];
int n;

void bui]]></description><category></category></item></channel></rss>