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

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>
            99在线|亚洲一区二区| 亚洲一区二区在线| 欧美高清视频一二三区| 亚洲黄网站在线观看| 91久久国产综合久久91精品网站| 久久中文字幕一区| 亚洲精品日产精品乱码不卡| 亚洲欧洲日韩在线| 国产精品高清网站| 欧美专区日韩专区| 久久裸体艺术| 日韩午夜三级在线| 亚洲自拍偷拍麻豆| 一区二区在线视频播放| 亚洲国产精品成人精品| 欧美视频一区二区三区| 欧美自拍偷拍| 欧美sm极限捆绑bd| 亚洲欧美在线aaa| 久久亚裔精品欧美| 亚洲在线播放电影| 久久久久.com| 亚洲宅男天堂在线观看无病毒| 香港久久久电影| 最新日韩在线| 亚洲淫性视频| 最新日韩在线视频| 亚洲欧美久久久久一区二区三区| 亚洲国产成人高清精品| 亚洲视频网在线直播| 狠狠色狠狠色综合系列| 亚洲免费成人| 亚洲国产精品电影| 午夜亚洲一区| 亚洲天堂第二页| 久久久精品一区| 欧美一区二区精品久久911| 欧美成人一区二区| 久久激情网站| 国产精品美女午夜av| 欧美黑人国产人伦爽爽爽| 国产精品久久久久国产精品日日| 欧美高清在线精品一区| 国产亚洲一区二区三区在线观看 | 久久伊伊香蕉| 国产精品久久国产愉拍 | 午夜精品久久久99热福利| 欧美福利视频| 麻豆亚洲精品| 国产综合久久久久久鬼色| 在线亚洲美日韩| 一区二区三区av| 欧美福利一区| 欧美高清不卡在线| 一区福利视频| 久久精品一区二区三区四区| 午夜国产不卡在线观看视频| 欧美日韩一区二区三区视频| 亚洲国产另类精品专区| 亚洲国产成人不卡| 久久午夜电影网| 蜜臀久久99精品久久久久久9 | 欧美韩日视频| 欧美激情中文字幕乱码免费| 影音先锋久久| 久久五月婷婷丁香社区| 欧美91视频| 亚洲七七久久综合桃花剧情介绍| 久久久久国产一区二区三区| 久久在线免费观看视频| 精品成人国产| 女女同性女同一区二区三区91| 欧美激情免费观看| 亚洲免费精彩视频| 欧美日韩在线综合| 亚洲你懂的在线视频| 久久成人精品一区二区三区| 国产精品亚洲激情| 久久高清福利视频| 麻豆亚洲精品| 亚洲伦理在线观看| 国产精品家庭影院| 性做久久久久久| 欧美成年人网站| 亚洲美女视频| 国产精品视频成人| 久久久精品视频成人| 亚洲大片精品永久免费| 亚洲天堂av在线免费| 国产伦精品一区二区三区照片91| 欧美亚洲一区三区| 欧美黑人在线播放| 亚洲一区二区成人| 激情小说亚洲一区| 欧美激情在线有限公司| 亚洲免费视频观看| 欧美激情一区二区三区在线视频观看 | 亚洲深夜福利在线| 久久一日本道色综合久久| 亚洲日本成人在线观看| 国产精品免费一区豆花| 久久久伊人欧美| 一区二区av| 美女脱光内衣内裤视频久久网站| 日韩一级精品视频在线观看| 国产午夜久久| 欧美日韩国产成人| 久久精品亚洲一区二区三区浴池 | 久久久久国色av免费看影院| 亚洲精品乱码久久久久久久久| 国产精品国产精品| 欧美大片在线观看一区| 午夜国产精品影院在线观看| 亚洲黄色一区| 乱码第一页成人| 欧美一级黄色录像| 中文无字幕一区二区三区| 黄色在线一区| 国产精品永久免费| 欧美日韩国产一级| 欧美96在线丨欧| 久久久av毛片精品| 午夜精品理论片| 宅男噜噜噜66国产日韩在线观看| 欧美大片在线观看一区| 久久精品国产成人| 午夜精品久久99蜜桃的功能介绍| 日韩亚洲欧美成人| 亚洲裸体视频| 亚洲肉体裸体xxxx137| 黄色日韩网站视频| 国产一区三区三区| 国产日韩精品一区二区三区| 国产精品xxx在线观看www| 欧美国产精品专区| 欧美成人有码| 欧美大片第1页| 欧美成人免费小视频| 久久久久网址| 久久―日本道色综合久久| 欧美在线你懂的| 久久激情五月激情| 久久精品视频在线| 久久九九99| 久久亚洲精品欧美| 欧美第一黄色网| 欧美国内亚洲| 欧美色精品在线视频| 欧美性事在线| 国产精自产拍久久久久久| 国产精品一区三区| 国产日韩欧美在线看| 国产在线精品一区二区夜色| 一区二区三区无毛| 亚洲激情精品| 亚洲午夜精品一区二区三区他趣| 亚洲最新视频在线播放| 亚洲伊人网站| 久久精品免费观看| 欧美国产日韩精品| 亚洲欧洲一区| 亚洲在线成人| 久久久久久亚洲精品中文字幕 | 欧美在线首页| 老**午夜毛片一区二区三区| 欧美成人免费全部| 欧美日韩在线精品| 国产综合久久| 亚洲精品色图| 欧美一区二区三区免费观看视频| 久久伊人免费视频| 最近看过的日韩成人| 99视频在线精品国自产拍免费观看| 亚洲一级一区| 噜噜噜躁狠狠躁狠狠精品视频| 欧美人与禽猛交乱配| 国产欧美精品va在线观看| 在线电影国产精品| 亚洲午夜av在线| 久热精品视频在线观看| 亚洲裸体视频| 久久亚洲精品网站| 国产精品视频福利| 亚洲激情视频在线观看| 午夜天堂精品久久久久| 欧美国产亚洲视频| 亚洲综合色婷婷| 欧美激情一二区| 国产综合久久久久影院| 一区二区三区你懂的| 久久久精彩视频| 一本色道精品久久一区二区三区| 欧美中文字幕精品| 欧美日韩在线观看一区二区三区 | 欧美色123| 亚洲激情校园春色| 久久久夜色精品亚洲| 一本色道久久综合精品竹菊| 免费av成人在线| 在线播放精品|