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

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 閱讀(538) 評論(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);


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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精品综合 | 欧美一区二区三区视频免费| 中文精品视频一区二区在线观看| 亚洲免费网址| 久久综合电影| 国产精品久久国产三级国电话系列 | 国产婷婷色一区二区三区四区| 欧美aaaaaaaa牛牛影院| 亚洲美女中出| 欧美一级夜夜爽| 欧美日本韩国一区| 亚洲精品黄色| 久久精品日韩| 日韩午夜精品| 欧美精品在线免费播放| 国模叶桐国产精品一区| 亚洲一区图片| 亚洲国产精品久久久久| 中文av字幕一区| 欧美另类女人| 亚洲人成人一区二区三区| 久久爱www| 亚洲天堂成人在线观看| 亚洲欧美日韩视频一区| 欧美日韩精品一本二本三本| 136国产福利精品导航网址| 亚洲影院色无极综合| 亚洲第一黄色网| 久久不见久久见免费视频1| 欧美性大战久久久久久久| 亚洲精品一区二| 欧美在线播放| 亚洲午夜精品一区二区三区他趣| 欧美成人影音| 亚洲国产日韩美| 浪潮色综合久久天堂| 欧美日韩亚洲一区二区三区在线| 国产精品美女www爽爽爽视频| 国产精品国内视频| 亚洲欧美综合一区| 久久一区二区精品| 亚洲愉拍自拍另类高清精品| 亚洲国产成人一区| 麻豆精品精华液| 亚洲高清不卡av| 久久精品麻豆| 亚洲一区二区四区| 免费成人黄色片| 亚洲国产日韩欧美在线99 | 国产综合视频在线观看| 精品99一区二区三区| 亚洲黄色大片| 亚洲欧美日韩国产成人| 欧美制服丝袜| 美腿丝袜亚洲色图| 亚洲欧美日韩精品久久| 一区二区三区高清在线| 国产精品乱人伦中文| 亚洲国产成人精品女人久久久 | 性欧美大战久久久久久久免费观看| 亚洲高清在线观看一区| 欧美精品在线观看播放| 亚洲精品一区久久久久久| 久久精品观看| 91久久黄色| 久久琪琪电影院| 亚洲第一福利视频| 亚洲成在人线av| 久久亚洲欧美| 亚洲国产一区二区三区青草影视| 欧美韩日亚洲| 欧美人妖在线观看| 校园春色综合网| 欧美一区在线看| 精品9999| 亚洲久久成人| 欧美另类videos死尸| 午夜精品在线观看| 久久不射中文字幕| 日韩午夜激情av| 亚洲一区免费在线观看| 揄拍成人国产精品视频| 久久综合久久综合久久| 欧美成人免费播放| 欧美一区二区三区四区高清| 久久久久国产精品麻豆ai换脸| 黄色日韩网站视频| 亚洲人成亚洲人成在线观看| 国产精品高清网站| 欧美国产日韩二区| 国产欧美日韩高清| 亚洲精品乱码久久久久| 亚洲精品1234| 久久野战av| 久久久欧美一区二区| 国产农村妇女精品一区二区| 99视频精品在线| 中国成人黄色视屏| 欧美日韩国产综合视频在线观看 | 久久久久久自在自线| 国产精品视频免费观看www| 亚洲黄色在线| 亚洲国产一成人久久精品| 久久精品系列| 久久夜色精品一区| 午夜久久美女| 影音先锋亚洲电影| 午夜欧美大片免费观看 | 欧美一区二区三区免费在线看 | 国产精品一区二区三区成人| 一区二区日韩| 午夜视频在线观看一区二区三区| 国产精品三级久久久久久电影| 久久精品卡一| 久久精品一区二区三区不卡| 国产精品嫩草久久久久| 91久久国产自产拍夜夜嗨| 亚洲电影视频在线| 老牛影视一区二区三区| 久久综合999| 狠狠综合久久av一区二区老牛| 久久av红桃一区二区小说| 久久国产一区二区| 影音先锋久久久| 免费久久99精品国产自在现线| 亚洲第一色在线| 亚洲一级免费视频| 国产无遮挡一区二区三区毛片日本| 亚洲性av在线| 久久久在线视频| 亚洲级视频在线观看免费1级| 欧美日韩不卡在线| 亚洲一区高清| 久久综合一区| 亚洲欧美久久久久一区二区三区| 性亚洲最疯狂xxxx高清| 国产亚洲第一区| 久久都是精品| 亚洲人成在线免费观看| 亚洲自拍电影| 在线观看视频欧美| 欧美日一区二区在线观看| 欧美一区激情视频在线观看| 亚洲成人在线视频播放 | 欧美日韩亚洲高清一区二区| 亚洲欧美电影在线观看| 欧美激情久久久| 午夜在线a亚洲v天堂网2018| 亚洲成人原创| 欧美日韩性生活视频| 久久久久久久久一区二区| 99re6这里只有精品视频在线观看| 欧美在线在线| 中国日韩欧美久久久久久久久| 亚洲激情亚洲| 国产精品久久久久77777| 亚洲在线播放| 亚洲国产一区二区三区青草影视| 欧美一区国产二区| 国产真实乱偷精品视频免| 亚洲精品一区久久久久久| 亚洲桃花岛网站| 毛片精品免费在线观看| 欧美日产一区二区三区在线观看| 日韩视频中午一区| 亚洲国产一区二区三区在线播| 久久亚洲捆绑美女| 久久久久网址| 欧美jizzhd精品欧美喷水 | 久久精彩视频| 老巨人导航500精品| 欧美电影电视剧在线观看| 一区二区亚洲精品| 亚洲欧洲一区二区在线播放| 国产一区二区中文| 日韩一区二区免费高清| 国产精品一区二区久久国产| 欧美激情一区二区三区| 欧美日韩激情小视频| 欧美国产在线电影| 欧美日韩国产成人精品| 欧美一级专区免费大片| 免费欧美电影| 欧美专区在线观看一区| 中文久久精品| 这里只有精品在线播放| 亚洲精品美女久久久久| 亚洲精品久久久久久久久久久久 | 午夜精品久久久久久久99热浪潮| 亚洲精品专区| 一区二区三区 在线观看视频| 亚洲精品午夜| 一区二区三区高清视频在线观看| 亚洲精品在线观看视频| 亚洲精品国产系列| 亚洲久久成人| 日韩亚洲在线| 亚洲欧美日韩国产精品| 销魂美女一区二区三区视频在线| 欧美在线观看视频一区二区|