杭电2037
来源:互联网 发布:打电话时变声软件 编辑:程序博客网 时间:2024/05/31 06:21
先将数据按起始时间排序,然后通过循环选出据前一个确定的元素距离最小的元素作为下一个确定的元素,以此类推,算出每种情况中最多的个数
要另做一个循环来算出从第一个元素开始每个元素做第一个确定的元素时的最多个数,再从中选出最大值
#include<iostream>
using namespace std;
int main()
{
int max(int a,int b);
void paixu(int n,int a[],int b[]);
int n;
while(cin>>n&&n!=0)
{
int a[100],b[100],i,j,sum,k,m=0,s,c,minnum;
for(i=0;i<n;i++)
{
cin>>a[i]>>b[i];
}
paixu(n,a,b);//排序
for(i=0;i<n;i++)
{
k=1;
s=i;
for(j=i+1;j<n;j++)
{
if(a[j]>=b[s])
{
k++;
minnum=b[j];
for(c=j+1;c<n;c++)
{
if(b[c]<minnum)
{
minnum=b[c];
s=c;//记录最小元素的下标 *******注意
j=c;//将下一次循环从选中的那个元素开始
}
else
s=j;//******注意
}
}
}
m=max(m,k);
}
cout<<m<<endl;
}
}
void paixu(int n,int a[],int b[])
{
int c;
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
c=a[i];
a[i]=a[j];
a[j]=c;
c=b[i];
b[i]=b[j];
b[j]=c;
}
}
}
}
int max(int a,int b)
{
if(a>b) return a;
else return b;
}
- 杭电 2037
- 杭电 2037
- 杭电2037
- 杭电2037
- 杭电2037
- 杭电acm 2037
- 杭电 2037
- 杭电2037
- 杭电2037
- 杭电acm--2037
- 杭电2037
- 杭电2037
- 杭电2033-2037总结
- 杭电2037 计算几何
- 杭电2037的思路
- 杭电 2037 经典贪心
- 杭电2037解题报告
- java实现---杭电2037
- 2013第四届蓝桥杯 C/C++本科A组 真题答案解析【交流帖】
- 非常实用的CSS样式
- iOS NSString的常用用法
- linux shared libraries
- qt 处理路径空格
- 杭电2037
- web.xml定义错误或异常页面的友好界面显示
- 思维习惯的差异
- @@Identity 与触发器冲突的解决方案
- 飞秋的源代码可以下载吗?
- db2常用命令
- min_hash
- BroadcastReceiver(静态注册和动态注册)
- 2013年四月GBin1月刊