| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 415 人关注过本帖
标题:帮忙看看这种算法对不对
只看楼主 加入收藏
枫叶无痕
Rank: 2
等 级:论坛游民
帖 子:80
专家分:30
注 册:2011-2-10
结帖率:73.91%
收藏
 问题点数:0 回复次数:0 
帮忙看看这种算法对不对
Computer Arrangement

Time Limit:1000MS  Memory Limit:65536K
Total Submit:451 Accepted:106

Description

每年新学期,计算中心的老师都要安排上机时间。
现设有n个班级E={1, 2, 3, ..., n}, 要使用8号机房,同一时间内只允许一个班级使用该机房。设班级i上机的起止时间区间为[si,fi),如果班级i使用了8号机房, 则它在时间[si,fi)内占用该机房,若区间[si,fi)和[sj,fj)不相交,则称班级i和j均可安排上机的。现在要求你安排一下上机情况,使尽可能多的班级能有机会上机。

Input

有多组测试数据。
第1行先输入整数t(1<= t <= 100),表示共有t组测试数据。
每组测试数据输入共有3行,
第1行为一个整数n(1 <= n <= 100) 表示班级数
第2行共n个整数,为这n个班级希望上机的开始时间(以某一时间为基准)
第3行共n个整数,为这n个班级上机的终止时间

Output

对于每个测试案例输出最多可以安排上机的班级

Sample Input


1
11
1 3 0 5 3 5 6 8 8 2 12
4 5 6 7 8 9 10 11 12 13 14

Sample Output


4

Source

yhr





#include<stdio.h>
main()
{
    int t,n;
    int min1,min2,str[100],num[100];
    int i,j,k,g;
    while(scanf("%d",&t)!=EOF)
    {
        scanf("%d",&n);
        for(i=1;i<=n;i++)
        {
            scanf("%d",&str[i]);
        }
        for(i=1;i<=n;i++)
        {
            scanf("%d",&num[i]);
        }
        for(i=1;i<=n;i++)
        {
            for(j=1;j<=n-1-i;j++)
            {
                if(num[j]>num[j+1])
                {
                    min1=str[j];
                    str[j]=str[j+1];
                    str[j+1]=min1;
                    
                    min2=num[j];
                    num[j]=num[j+1];
                    num[j+1]=min2;
                }
            }
        }
        k=1;
        j=1;
        for(i=k+1;i<=n;i++)
        {
            if(str[i]>=num[k])
            {
                k=i;
                j++;
            }
        }
        printf("%d\n",j);
    }
}


搜索更多相关主题的帖子: 计算中心 时间 老师 
2011-05-11 12:27
快速回复:帮忙看看这种算法对不对
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.010801 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved