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

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

// I am new in programming, welcome to my blog
I am oyjpart(alpc12, 四城)
posts - 224, comments - 694, trackbacks - 0, articles - 6

Asked by OR on Integer Intervals

Posted on 2006-09-18 18:54 oyjpart 閱讀(535) 評論(0)  編輯 收藏 引用
看到您在BLOG的提問了 趕緊做了一下 寫好了
題目是這樣的

Integer Intervals
Time Limit:1000MS? Memory Limit:10000K
Total Submit:960 Accepted:387

Description
An integer interval [a,b], a < b, is a set of all consecutive integers beginning with a and ending with b.
Write a program that: finds the minimal number of elements in a set containing at least two different integers from each interval.

Input
The first line of the input contains the number of intervals n, 1 <= n <= 10000. Each of the following n lines contains two integers a, b separated by a single space, 0 <= a < b <= 10000. They are the beginning and the end of an interval.

Output
Output the minimal number of elements in a set containing at least two different integers from each interval.

Sample Input

4
3 6
2 4
0 2
4 7

Sample Output

4
題目的意思是找一個集合 使這個集合包含上面每個集合的2個數 輸出集合個數
?策略:貪心
?實現: 首先進行預排序 即按照intervals的begin來對intervals排序
??? 然后貪心選擇每一個集合的盡量靠后的元素 因為這樣一定對后面的集合選擇有利(仔細體會一下吧)
????????? 比如第一個集合選最后兩個元素 后面的先檢查選出來的已經有幾個在集合里面(0,1,2三中情況)仍選擇盡量靠后的???
??? 程序:
#include <stdio.h>
#include <stdlib.h>
struct interval
{
?int begin;
?int end;
}ii[10100];
int answer[20020];
int anslen;
int cmp(const void * a, const void * b)????? 
{
?return (*(interval*)a).end - (*(interval*)b).end;
}
int main()
{
?int nii;
?scanf("%d", &nii);
?int i;
?for(i=0; i<nii; i++)
?{
??scanf("%d%d", &ii[i].begin, &ii[i].end);
?}
?qsort(ii, nii, sizeof(ii[0]), cmp);
?answer[anslen++] = ii[0].end-1;
?answer[anslen++] = ii[0].end;
?i = 1;
?while(i<nii)?????
?{
??int count = 0;
??if(answer[anslen-2] >= ii[i].begin && answer[anslen-2] <= ii[i].end) count++;
??if(answer[anslen-1] >= ii[i].begin && answer[anslen-1] <= ii[i].end) count++;
??if(count==0)
??{
???answer[anslen++] = ii[i].end-1;
???answer[anslen++] = ii[i].end;
??}
??else if(count == 1)
???answer[anslen++] = ii[i].end;
??i++;
?}
?printf("%d\n", anslen);
?return 0;
}
關于stdlib中qsort的用法 給你摘錄下
七種qsort排序方法
<本文中排序都是采用的從小到大排序>
一、對int類型數組排序
int num[100];
Sample:
int cmp ( const void *a , const void *b )
{
???? return *(int *)a - *(int *)b;
}
qsort(num,100,sizeof(num[0]),cmp);
如果num中的數據不是從0開始的,比如1,那么應該寫num+1;
二、對char類型數組排序(同int類型)
char word[100];
Sample:
int cmp( const void *a , const void *b )
{
??? return *(char *)a - *(char*)b;
}
qsort(word,100,sizeof(word[0]),cmp)
三、對double類型數組排序(特別要注意)
double in[100];
int cmp( const void *a , const void *b )
{
??? return *(double *)a > *(double *)b ? 1 : -1;
} qsort(in,100,sizeof(in[0]),cmp);
?
四、對結構體一級排序
struct In {
?double data;
?int other;
}s[100]
//按照data的值從小到大將結構體排序,關于結構體內的排序關鍵數據data的類型可以很多種,
參考上面的例子寫
int cmp( const void *a ,const void *b)
{
???? return (*(In *)a).data > (*(In *)b).data ? 1 : -1;
}
qsort(s,100,sizeof(s[0]),cmp);
五、對結構體二級排序 
struct In {
?? int x; int y;
}s[100];
//按照x從小到大排序,當x相等時按照y從大到小排序
int cmp( const void *a , const void *b )
{
??? struct In *c = (In *)a;
??? struct In *d = (In *)b;
??? if(c->x != d->x) return c->x - d->x;
??? else return d->y - c->y;
}
qsort(s,100,sizeof(s[0]),cmp);
六、對字符串進行排序 
struct In {
?? int data; char str[100];
}s[100];
//按照結構體中字符串str的字典順序排序
int cmp ( const void *a , const void *b )
{
??? return strcmp( (*(In *)a)->str , (*(In *)b)->str );
}
qsort(s,100,sizeof(s[0]),cmp);

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久夜色精品国产噜噜av| 国产欧美午夜| 99在线热播精品免费| 亚洲视频在线观看三级| 亚洲片在线资源| 最新亚洲一区| 性8sex亚洲区入口| 久久露脸国产精品| 亚洲国产精品成人| 欧美精品123区| 亚洲精品一二三| 久久国产精品久久久久久电车| 国产视频欧美视频| 欧美精品日本| 国产精品视频大全| 久久久xxx| 亚洲制服欧美中文字幕中文字幕| 国产精品爱久久久久久久| 午夜一区二区三区不卡视频| 韩国福利一区| 国产麻豆午夜三级精品| 欧美日产一区二区三区在线观看 | 99国产精品私拍| 精品成人国产在线观看男人呻吟| 亚洲黄色免费网站| 久久av一区二区| 一区二区三区 在线观看视频| 亚洲黄色在线观看| 一区二区三区福利| 在线免费高清一区二区三区| 国产日韩欧美一区二区三区四区| 亚洲七七久久综合桃花剧情介绍| 麻豆国产精品777777在线| 久久久久成人网| 久久久久九九九九| 久久免费的精品国产v∧| 毛片精品免费在线观看| 麻豆久久婷婷| 亚洲国产美国国产综合一区二区| 欧美日韩妖精视频| 国产欧美 在线欧美| 亚洲淫片在线视频| 亚洲丝袜av一区| 亚洲欧美一区二区视频| 狼狼综合久久久久综合网| 一区二区自拍| 亚洲二区精品| 亚洲专区一区| 久久超碰97人人做人人爱| 欧美激情久久久久久| 亚洲一区在线免费| 欧美一区二视频| 久久久久一区二区三区四区| 亚洲午夜一区| 男人的天堂成人在线| 亚洲美女av电影| 久久久久国产精品人| 欧美三区在线观看| 国产在线观看91精品一区| 久久免费99精品久久久久久| 香蕉av777xxx色综合一区| 亚洲激情在线激情| 一二三区精品福利视频| 久久综合色影院| 欧美午夜精品一区| 亚洲最新合集| 欧美sm视频| 欧美一区二区观看视频| 欧美日韩国产小视频| 亚洲国产高潮在线观看| 欧美三级特黄| 日韩西西人体444www| 91久久国产自产拍夜夜嗨| 尤物九九久久国产精品的特点| 亚洲午夜精品网| 欧美激情五月| 老司机精品视频网站| 韩日精品中文字幕| 久久久噜久噜久久综合| 久久aⅴ国产紧身牛仔裤| 国产一区二区0| 久久久欧美精品| 久久一二三四| 亚洲蜜桃精久久久久久久| 国产精品v日韩精品v欧美精品网站| 亚洲欧洲一级| 国产亚洲一本大道中文在线| 国产精品99久久久久久久久| 亚洲三级免费电影| 欧美精品一区二区三区四区| 亚洲精品一区二区三区av| 久久久久久久网| 欧美丰满少妇xxxbbb| 99精品国产在热久久婷婷| 久久精品国语| 欧美一二区视频| 韩日视频一区| 亚洲人体影院| 国产精品久久久久久久午夜片| 亚洲视频碰碰| 香蕉久久夜色| 久久亚洲国产精品一区二区| 91久久线看在观草草青青| 亚洲一级特黄| 最新高清无码专区| 一本高清dvd不卡在线观看| 久久综合狠狠综合久久激情| 亚洲精品国产系列| 国产日韩精品在线播放| 91久久一区二区| 国产欧美日韩综合精品二区| 麻豆精品一区二区av白丝在线| 欧美视频在线播放| 亚洲成人在线视频网站| 精品9999| 亚洲欧美日韩一区二区三区在线观看| 伊人久久男人天堂| 欧美性色综合| 欧美高清不卡| 国产一区二区日韩| 午夜亚洲激情| 欧美一区中文字幕| 国产精品五月天| 亚欧成人精品| 性欧美暴力猛交另类hd| 欧美福利视频一区| 亚洲黄一区二区三区| 久久精品视频播放| 亚洲天堂男人| 欧美激情视频网站| 亚洲电影av在线| 日韩视频在线观看一区二区| 久久一区中文字幕| 亚洲激情成人网| 亚洲日本电影| 欧美成人午夜视频| 亚洲精品久久久久久久久| 女生裸体视频一区二区三区| 久久综合伊人77777麻豆| 亚洲大胆av| 亚洲精品在线免费观看视频| 亚洲三级影院| 午夜国产精品视频免费体验区| 国产精品社区| 久久久国产精品一区| 99人久久精品视频最新地址| 欧美一级播放| 在线视频精品一| 国产一区二区三区成人欧美日韩在线观看| 麻豆国产精品777777在线| 女女同性精品视频| 一区二区三区四区五区精品| 亚洲卡通欧美制服中文| 亚久久调教视频| 韩国三级电影一区二区| 欧美精品成人| 久久久久久午夜| 亚洲永久字幕| 亚洲第一在线| 久久久久久亚洲精品中文字幕| 亚洲精品欧美一区二区三区| 国产一区二区三区网站| 欧美日韩一卡| 欧美日本不卡视频| 欧美高清视频在线播放| 欧美亚洲在线观看| 久久久久免费视频| 国产亚洲欧美一区| 欧美日韩成人一区| 欧美精品久久久久a| 农村妇女精品| 久久精品欧美日韩| 欧美一区二区免费观在线| 99伊人成综合| 日韩亚洲欧美在线观看| 精品88久久久久88久久久| 亚洲激情电影在线| 99re亚洲国产精品| 在线观看日韩www视频免费| 国产精品毛片大码女人| 国产精品久久久久aaaa| 欧美日一区二区三区在线观看国产免| 欧美激情欧美激情在线五月| 美日韩在线观看| 男女激情久久| 男男成人高潮片免费网站| 欧美日韩美女在线| 欧美午夜精品电影| 欧美性大战久久久久久久| 亚洲素人在线| 亚洲视频一区二区免费在线观看| 久久亚洲精品中文字幕冲田杏梨| 亚洲另类视频| 欧美一区二区三区免费看| 久久精品国产第一区二区三区最新章节| 宅男66日本亚洲欧美视频| 午夜精品久久久久久久久久久 | 蜜臀av性久久久久蜜臀aⅴ| 老司机午夜免费精品视频| 猛干欧美女孩|