填报志愿(codevs 2930)

题目描述 Description

高考已经结束,而志愿填报正在进行中~

吴校长的学校里有n位同学,每位同学有ki个愿意去的大学。而在吴老师的省份中,有m所大学有招生名额。根据往年的经验,对于每所大学(编号为ci),学校中最多只会有一人考上。因此为了避免志愿冲突,每年吴校长都要安排老师对同学们的志愿进行调整。

今年吴校长找到了你来帮忙,请你编程计算,在不冲突的情况下,最多能有多少同学顺利填报志愿,填报志愿的方案又是怎样的。

输入描述 Input Description

第一行,一个数n。

接下来的n行,每行的第一个数为ki,接下来有ki个数,表示第i个同学愿意去的大学的编号。

下一行,一个数m。

下一行,m个数,为m个大学的编号。保证大学编号递增。

输出描述 Output Description

第一行,一个数,为在不冲突的情况下,最多能有多少同学顺利填报志愿。

接下来的若干行,输出填报志愿的方案。每行两个数,第一个数为学生编号,第二个数为大学编号,以空格隔开。若有多种可行方案,输出字典序最小的一种。

样例输入 Sample Input

3

2 1 2

3 2 4 5

2 2 3

5

1 3 4 5 6

样例输出 Sample Output

3

1 1

2 4

3 3

数据范围及提示 Data Size & Hint

0<n<=1000,0<ki<=20,0<m<=2000,学生的编号为1~n,大学的编号为1~5000。同学愿意去的大学不一定招生。

#include<cstdio>
#include<iostream>
#include<cstring>
#define M 5010
#define N 1010
using namespace std;
int line[N][M],used[M],belong[M],vis[M],sch[M],n,m;
int find(int x)
{
    for(int i=1;i<=m;i++)
      if(line[x][i]&&!used[i]&&sch[i])
      {
          used[i]=1;
          if(!belong[i]||find(belong[i]))
          {
              belong[i]=x;
              return 1;
        }
      }
    return 0;
}
int main()
{
    scanf("%d",&n);
    int x,y;
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&x);
        for(int j=1;j<=x;j++)
        {
            scanf("%d",&y);
            line[i][y]=1;
        }
    }
    int e;
    scanf("%d",&e);
    for(int i=1;i<=e;i++)
    {
        scanf("%d",&x);
        sch[x]=1;
        m=max(m,x);
    }
    int tot=0;
    for(int i=1;i<=n;i++)
    {
        memset(used,0,sizeof(used));
        if(find(i))tot++;
    }
    printf("%d",tot);
    return 0;
}

时间: 2024-10-05 11:03:09

填报志愿(codevs 2930)的相关文章

2930 填报志愿

2930 填报志愿 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 高考已经结束,而志愿填报正在进行中- 吴校长的学校里有n位同学,每位同学有ki个愿意去的大学.而在吴老师的省份中,有m所大学有招生名额.根据往年的经验,对于每所大学(编号为ci),学校中最多只会有一人考上.因此为了避免志愿冲突,每年吴校长都要安排老师对同学们的志愿进行调整. 今年吴校长找到了你来帮忙,请你编程计算,在不冲突的情况下,最多

高考填报志愿综合参考系统1

我本人距离高考,已经过去很多年了.回过头来,想想当时的高考填报志愿,没有经过太多的指点和思考,就问了问我大一的堂哥,稀里糊涂就报上了,结果,还被录取了. 选择这个物理专业,对于我来说,简直就是噩梦的开始,谈不上喜欢,唯一让人觉得不爽的,就是没有出路.专业不行,学校不行,至于我本人呢,我毫不夸张的说,我个人还可以.但是,就是这样的轻率的一个决定,让我荒废了四年.这四年,每天与上课老师作斗争.生活在小县城的我们,包括我们父母,哪懂什么大学. 就这样,稀里糊涂的上完了,可算是上完了,打死我也不再上了.

志愿填报在即,如何进军人工智能专业

如今人工智能的时代已经来临,过去一年,国内CS/AI方向又有很多新的变化,最明显的是各大高校纷纷设立人工智能学院,开始招收人工智能专业本科生.最近又要开始新的一轮填报志愿,许多即将迈入大学的考生打算顺应潮流,填报人工智能专业.今天,我们就跟各位考生聊一聊人工智能是什么.学什么.怎么学.以及该如何进军AI的问题. 人工智能简介 对于普通大众来说,可能是近些年才对其有所了解,其实人工智能在几十年以前就被学者提出并得到一定程度的发展,伴随着大数据技术的迅猛发展而被引爆. (1)人工智能的诞生 最初的人

从高考填志愿APP泛滥看,蹭热点捞金有多可恶

高考成绩并不是唯一决定未来是否美好的东东,因为还有另外一个--填志愿.在知道高考分数之后,选择合适的大学和专业尤为重要.如何选择与自己分数相匹配的大学和专业,既不会造成落榜,也不会凑合,是一门高深的学问.但也正是填志愿太过重要,让很多骗子有了可趁之机,众多诈骗.垃圾APP呈现泛滥之势. 这些APP为了蹭热点来捞金,却损害了诸多考生及家长的利益.而类似以热点为"金矿",拼命捞金的APP也决不再少数.购物狂欢节.春运等热点,成为了不法分子眼中的"香饽饽".有多可恶?咱们

第二部分:志愿录取标准

第二部分:志愿录取标准 零.概况一.传统志愿录取过程二.平行志愿录取过程三.17年志愿录取过程 零.概况自1977年,恢复高考以来,高考录取标准,作为公平线,都是相当透明的. 这部分分享,以录取标准(过程)的演变为主线,从而得出17年的录取标准(过程)的可能性的结论.虽然,结论是猜测,但从演变的过程来推测,结论的可靠性是相当高的. 每年,以省(市)为单位,多少考生,多少高校要招多少考生,都要报教育部.经教育部批准,每个高校的招生名额才能确定,精确到个位数.高考前后,高校要到每个省招考生,省里要把

高考志愿,填的不该是“父母的理想”

25日上午,省教育考试院召开新闻发布会,公布今年我省各批次录取分数线.记者从市教体局获悉,今年高考成绩只提供给考生本人,不再向考生所在学校及其他单位和个人提供,考生成绩单由省教育考试院统一打印,再由各地招生办公室下发给考生.今天13:00起,志愿填报系统将开放.(6月26日<中山日报>) 录取分数线公布了,又到了有考生家庭的"讨论时间".上什么样的学校,上什么样的专业?爷爷奶奶在发表看法,爸爸妈妈在发表看法,总之是一家人齐上阵.按说,对填志愿畅所欲言是需要的,可当填志愿让孩

行业乱象丛生,“蹭热点”的高考志愿APP如何立足市场?

近日,一则"高考志愿填报APP靠谱吗"的新闻引起社会关注,一时间,社会关于高考志愿填报APP的评价褒贬不一,一方面欣喜于高考志愿的填报有了新的咨询路径,另一方面质疑此类APP是否真能有效指导高考志愿的填报.而随着今年高考志愿填报时期的到来,关于高考填报志愿APP这一行业也再次进入大众视野. 据悉,2017年全国高考报名考生共有923万人,近几年高考报名人数也在900万上下,面对这一庞大的考生群体,为满足考生的个性化需求,智能指导高考志愿填报成为手机APP开发商的一个新的突破点. 蹭热点

高考估分查分选志愿一键搞定_支付宝又操办了件人生大事

原文链接 可能比高考更考验心力的填报志愿,支付宝要帮你一键搞定. 支付宝今天正式上线集估分.查分.选志愿等众多服务于一体的高考后综合服务平台,陪伴高考学生的青春大考.考生在估分.查分后,还可以看到系统智能推荐供参考的合适志愿.这项由好未来教育集团旗下高考服务机构高考派提供的增值服务,基于模型算法,也是首次在支付宝上全面免费. 去年,支付宝上线了高考"预约查分"和"实时查分"功能.今年,支付宝依托高考派提供的院校库.专业库.分数线以及排行榜,可以为考生提供估分.查分.

高考志愿,你们想好怎么填了吗?

(作者:画眉深浅) 端午节,陪一个怀孕的朋友去雍和宫求平安.发现里面人山人海,根本挤不进去,当我们在诧异怎么有这么多人的时候,听到身边的几位香客说,高考成绩快出来了,家长都带着孩子来求佛保佑能考出好成绩.突然间,我明白了.原来,神仙在忙着保佑参加高考的学生们能有一个好成绩.看着家长们一脸的虔诚,孩子们青涩.迷茫的脸上挂着将信将疑的表情,我心里五味杂陈.在我看来,所有参加高考的孩子们,他们当前最重要的事情不是高考成绩,而是如何去填报志愿,选择今后要从事的职业或者说是事业.但是,人们总是这样,买椟还