NOIP 2007 普及组 复赛 group 纪念品分组
2017-03-30 21:05
489 查看
NOIP 2007 普及组 复赛 group 纪念品分组
1.n<=30000快速排序是免不了了。2.最大与最小组合,若不行,则最大单独一组,如此重复。贪心算法
3.写法有些类似快速排序,一次性提交AC.
4.注意i==j时,只剩一个数据,也算一组。
附上AC代码,编译环境Dev-C++4.9.9.2
#include <stdio.h>
int p[30000+100];
void quicksort(int left,int right){//自小到大排序
int i=left,j=right,t;
int mid=p[(i+j)/2];
while(i<=j){
while(p[i]<mid)
i++;
while(p[j]>mid)
j--;
if(i<=j){
t=p[i];
p[i]=p[j];
p[j]=t;
i++;
j--;
}
}
if(left<j)
quicksort(left,j);
if(i<right)
quicksort(i,right);
}
int main(){
int w,n,i,j;//i标记排好序的左边,j标记排好序的右边
int count=0;
scanf("%d%d",&w,&n);
for(i=1;i<=n;i++)
scanf("%d",&p[i]);
quicksort(1,n);
i=1;
j=n;
while(i<j){
if(p[j]+p[i]<=w){
j--;
i++;
count++;
}else{
j--;
count++;
}
}
if(i==j)
count++;
printf("%d\n",count);
return 0;
}
相关文章推荐
- xynuoj NOIP2007普及组第2题 纪念品分组 酒馆浪人的博客
- NOIP2007普及组 纪念品分组 贪心
- noip普及组2007 纪念品分组
- luogu1094 纪念品分组(NOIP2007普及组第2题)
- XYNUOJ 1252: NOIP2007普及组第2题 纪念品分组
- NOIP 2007 普及组 复赛 escape 守望者的逃离
- [noip2007pj] 纪念品分组
- NOIP2007:纪念品分组
- NOIP2007 T2纪念品分组 解题报告-S.B.S.
- 纪念品分组 2007年NOIP全国联赛普及组
- NOIP2007:纪念品分组
- NOIP 2007 普及组 复赛 scholar 奖学金
- NOIP2007 T2纪念品分组 解题报告-S.B.S.
- noip2007 纪念品分组 (贪心)
- 1143 纪念品分组 2007年NOIP全国联赛普及组
- NOIP2007 T2纪念品分组 解题报告-S.B.S.
- luogu1096 Hanoi双塔问题(NOIP2007普及组第4题)(高×低)
- NOIP2005-普及组复赛-第三题-采药
- NOIP1995普及组复赛第1题:
- NOIP 2015 普及组 复赛 mine 扫雷游戏