青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

oyjpArt ACM/ICPC算法程序設計空間

// I am new in programming, welcome to my blog
I am oyjpart(alpc12, 四城)
posts - 224, comments - 694, trackbacks - 0, articles - 6
Minimizing maximizer
Time Limit: 5000MS Memory Limit: 30000K
Total Submissions: 1004 Accepted: 280

Description
The company Chris Ltd. is preparing a new sorting hardware called Maximizer. Maximizer has n inputs numbered from 1 to n. Each input represents one integer. Maximizer has one output which represents the maximum value present on Maximizer's inputs.

Maximizer is implemented as a pipeline of sorters Sorter(i1, j1), ... , Sorter(ik, jk). Each sorter has n inputs and n outputs. Sorter(i, j) sorts values on inputs i, i+1,... , j in non-decreasing order and lets the other inputs pass through unchanged. The n-th output of the last sorter is the output of the Maximizer.

An intern (a former ACM contestant) observed that some sorters could be excluded from the pipeline and Maximizer would still produce the correct result. What is the length of the shortest subsequence of the given sequence of sorters in the pipeline still producing correct results for all possible combinations of input values?

Task
Write a program that:

reads a description of a Maximizer, i.e. the initial sequence of sorters in the pipeline,
computes the length of the shortest subsequence of the initial sequence of sorters still producing correct results for all possible input data,
writes the result.

Input
The first line of the input contains two integers n and m (2 <= n <= 50000, 1 <= m <= 500000) separated by a single space. Integer n is the number of inputs and integer m is the number of sorters in the pipeline. The initial sequence of sorters is described in the next m lines. The k-th of these lines contains the parameters of the k-th sorter: two integers ik and jk (1 <= ik < jk <= n) separated by a single space.

Output
The output consists of only one line containing an integer equal to the length of the shortest subsequence of the initial sequence of sorters still producing correct results for all possible data.

Sample Input

40 6
20 30
1 10
10 20
20 30
15 25
30 40

 

Sample Output

4

 

Hint
Huge input data, scanf is recommended.

Source
Central Europe 2003

//pku1769
/*
 * trival DP dp[i] = dp[j] + 1 (if there is a segment starting from a->i && a <= j)  o(n^2)
 * 考慮到轉移的時候選擇的是一段內的最小dp值,運用點樹可以解決
 */
#include <string.h>
#include <stdio.h>

const int N = 50010;
const int MAXINT = 1000000000;

int n, l;

struct ST {int i,j,m,l,r,c;} st[2*N];
int up, cnt;

void bd(int d, int x, int y) {
 st[d].i = x, st[d].j = y, st[d].m = (x+y)/2, st[d].c = MAXINT;
 if(x < y) {
  st[d].l = ++up; bd(up, x, st[d].m);
  st[d].r = ++up; bd(up, st[d].m+1, y);
 }
}

void ins(int d, int x, int c) {
 if(c < st[d].c)
  st[d].c = c;
 if(st[d].i != st[d].j) {
  if(x <= st[d].m)
   ins(st[d].l, x, c);
  else
   ins(st[d].r, x, c);
 }
}

int getmin(int d, int x, int y) {
 if(x <= st[d].i && y >= st[d].j)
  return st[d].c;
 int min = MAXINT;
 if(x <= st[d].m) {
  int now = getmin(st[d].l, x, y);
  if(now < min) min = now;
 }
 if(y > st[d].m) {
  int now = getmin(st[d].r, x, y);
  if(now < min) min = now;
 }
 return min;
}

int main() {
 int i, a, b;
 up = 0;
 scanf("%d %d ", &l, &n);
 bd(0, 1, l);
 ins(0, 1, 0);
 int max = 0;
 for(i = 0; i < n; ++i) {
  scanf("%d%d", &a, &b);
  if(a < b) {
   int min = getmin(0, a, b-1);
   ins(0, b, min+1);
  }
 }
 printf("%d\n", getmin(0, l, l));
 return 0;
}

Feedback

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2007-12-04 16:33 by je
題目沒看懂,能解釋下么?

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2007-12-05 11:47 by oyjpart
給定一個線段集,要求選擇其中一個最小的子集來覆蓋整個區域。
要求選定的子集是按照題目給的序來覆蓋。

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2008-01-18 08:46 by Littleye
很多測試好像得不到正確答案,例如:
40 4
10 30
14 29
25 30
30 40
答案應該是2,你的程序給的是1000000000(你的初始值)
類似的例子還有不少

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2008-01-18 12:40 by oyjpart
你的樣例是無解的,沒有線段覆蓋【0,10】的區間。

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2008-01-19 02:33 by Littleye
I understand now. I don't think I understood the problem thoroughly before. Although the problem description doesn't clearly indicate that all the segments given should cover the whole segment(1,N), it is the right situation or else we can't get the right output from the maximizer. Now the problem description says that we can get the right output, so the subsequences given must cover the whole segments. Thanks a lot!

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2008-01-19 12:34 by oyjpart
you are welcome

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2008-04-18 10:44 by l-y-p
向大牛學習學習,“運用點樹可以解決”,好思想,很好很強大。但是還有一個疑點:在DP的時候應該從小到大進行,但是沒發現你對y坐標進行排序就直接進行,那如果是考慮這樣兩組數據:
10 40
0 10
從10到40先確定到40的DP值為maxint+1,然后再由0~10確定10的值為1,這樣是不是有問題??你的程序我沒調試過,不曉得你是怎么處理的?

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2008-04-18 10:58 by l-y-p
果然啊,剛調試了下,直接運行數據:
40 2
10 40
0 10
結果是1000000000,不知道是我沒看清楚還是程序的bug?

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2008-04-18 12:19 by oyjpart
題目是有這樣的要求的:
要求選定的子集是按照題目給的序來覆蓋。
嘿嘿 如果我沒有理解錯你的意思的話

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2008-04-18 22:02 by l-y-p
汗!
What is the length of the shortest subsequence of the given sequence of sorters
把排序一去掉就AC了,多謝大牛指點,呵呵。
最先還一直在想如果可以排序的話就用不著用點樹了,直接貪心!

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2009-08-25 10:39 by demo
你的程序過不了zoj 2451

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2009-09-07 23:58 by oyjpart
題目是一樣的嗎

# re: pku1769 新寫的線段樹(點樹)模版  回復  更多評論   

2010-12-01 20:36 by LSK
請仔細讀題。。。ZJU哪個是multi case的
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            老司机免费视频一区二区| 中文欧美在线视频| 久久精品91久久久久久再现| 国产精品久久久久久久app| 亚洲天堂网站在线观看视频| 一区二区三区 在线观看视频 | 久久国产主播| 亚洲欧美一区二区精品久久久| 国产麻豆成人精品| 每日更新成人在线视频| 欧美www视频在线观看| 在线一区二区三区做爰视频网站| 一区二区三区不卡视频在线观看| 国产精品永久免费观看| 久久亚洲欧美| 欧美久久久久久| 欧美一区二区三区四区在线观看地址| 欧美一二三区精品| 亚洲日本理论电影| 亚洲一区二区在线免费观看视频| 国产午夜精品视频免费不卡69堂| 欧美成人按摩| 欧美性猛交一区二区三区精品| 久久久久久欧美| 欧美激情一区二区三区不卡| 亚洲欧美变态国产另类| 久久乐国产精品| 一区二区三区四区五区视频 | 久久人体大胆视频| 欧美激情bt| 久久频这里精品99香蕉| 欧美日韩亚洲在线| 欧美福利在线观看| 国产精品欧美久久| 亚洲国产精品va在线看黑人| 国产精品vvv| 亚洲国产精品久久久久婷婷884| 国产精品捆绑调教| 亚洲日韩中文字幕在线播放| 韩国精品久久久999| 亚洲视频一二区| 亚洲国产高清在线| 欧美在线亚洲| 亚洲欧美日韩综合国产aⅴ| 米奇777在线欧美播放| 欧美影院在线播放| 欧美性生交xxxxx久久久| 亚洲国产精品毛片| 亚洲第一毛片| 久久久久久久波多野高潮日日| 香蕉久久一区二区不卡无毒影院| 欧美精品导航| 亚洲黄色影片| 亚洲电影免费观看高清完整版在线| 亚洲一区视频| 亚洲欧美日韩人成在线播放| 欧美日韩国产免费| 亚洲人成人77777线观看| 亚洲激情黄色| 免费亚洲一区二区| 免费影视亚洲| 在线欧美视频| 乱码第一页成人| 欧美国产欧美亚州国产日韩mv天天看完整| 国产日韩一区二区三区| 亚洲欧美中文日韩v在线观看| 亚洲欧美日韩中文播放| 国产精品成人久久久久| 在线亚洲欧美| 欧美亚洲综合另类| 国产一级揄自揄精品视频| 午夜视频在线观看一区二区三区| 午夜在线电影亚洲一区| 国产农村妇女精品一二区| 午夜精品福利一区二区三区av | 国产欧美日韩另类一区| 亚洲制服欧美中文字幕中文字幕| 欧美一区二区日韩一区二区| 国产日韩欧美91| 久久免费精品视频| 亚洲国产91| 在线亚洲激情| 国产日韩欧美亚洲| 久久综合久久美利坚合众国| 欧美激情一区二区三区| 一本色道精品久久一区二区三区 | 欧美亚洲一级| 蜜臀a∨国产成人精品| 亚洲欧洲另类| 国产精品日日摸夜夜摸av| 欧美一区二区三区四区在线| 久久亚洲午夜电影| 亚洲精品资源| 国产精品实拍| 久久一二三四| 一本久久a久久精品亚洲| 久久gogo国模啪啪人体图| 亚洲国产婷婷香蕉久久久久久99| 欧美日韩爆操| 欧美在线资源| 一本色道久久99精品综合| 久久久久久噜噜噜久久久精品 | 国产精品久久国产三级国电话系列| 亚洲欧美日韩天堂| 亚洲国产成人在线播放| 欧美在线观看一区二区三区| 亚洲国产成人久久综合| 国产精品99一区| 麻豆精品在线视频| 午夜久久久久| 99精品视频免费观看视频| 免费观看久久久4p| 亚洲欧美色婷婷| 亚洲激情网址| 国产综合av| 欧美亚韩一区| 欧美精品自拍偷拍动漫精品| 久久国产精品久久久| 一本大道久久a久久综合婷婷 | 日韩天天综合| 国产一区二区中文字幕免费看| 欧美另类69精品久久久久9999| 久久成人18免费网站| 一区二区激情视频| 亚洲激情图片小说视频| 久久深夜福利免费观看| 欧美一区二区国产| 一区二区电影免费观看| 亚洲精品美女久久7777777| 国产又爽又黄的激情精品视频| 欧美三级免费| 免费日韩精品中文字幕视频在线| 性做久久久久久免费观看欧美 | 免播放器亚洲| 久久超碰97人人做人人爱| 亚洲欧美日韩一区二区在线| 日韩手机在线导航| 亚洲理论在线| 亚洲精一区二区三区| 亚洲人成啪啪网站| 亚洲国产精品va在线观看黑人| 韩国一区电影| 伊人激情综合| 亚洲国产精品久久久久婷婷老年 | 亚洲电影专区| 亚洲国产成人久久| 亚洲人成网站精品片在线观看 | 国产一区二区三区在线观看网站| 国产精品区一区| 国产日韩精品一区二区| 国产亚洲精品aa午夜观看| 国产一区999| 亚洲第一精品夜夜躁人人躁| 亚洲高清视频在线| 日韩视频免费| 亚洲一区二区伦理| 先锋影音网一区二区| 欧美影院一区| 美乳少妇欧美精品| 亚洲国产另类久久久精品极度| 亚洲韩国精品一区| 一道本一区二区| 欧美伊人精品成人久久综合97| 久久蜜桃资源一区二区老牛| 老牛国产精品一区的观看方式| 欧美激情影院| 国产精品视频免费观看www| 国产亚洲精品久| 亚洲黄色免费网站| 亚洲午夜激情网页| 久久精品成人一区二区三区| 欧美bbbxxxxx| 99视频日韩| 久久久久久高潮国产精品视| 欧美激情视频一区二区三区免费| 国产精品老女人精品视频| 一区二区三区在线视频免费观看 | 国产农村妇女毛片精品久久麻豆| 国产一区av在线| 一本大道久久精品懂色aⅴ| 午夜精品久久久久久久99热浪潮| 久久亚洲精品中文字幕冲田杏梨| 亚洲成人自拍视频| 亚洲一区二三| 欧美日韩高清在线观看| 国产日韩欧美自拍| 99成人免费视频| 久久精品最新地址| 一区二区三区欧美日韩| 老司机午夜精品| 国产乱码精品| 中文高清一区| 欧美高清视频一区二区三区在线观看| 一区二区三区日韩欧美| 老司机午夜精品| 国内精品久久久久久影视8| 夜夜爽www精品| 欧美电影专区| 久久久久中文| 黄色亚洲在线|