过山车java_航电java2063过山车
过山车
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 37448 Accepted Submission(s): 15826
Problem Description
RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐。但是,每个女孩都有各自的想法,举个例子把,Rabbit只愿意和XHD或PQK做partner,Grass只愿意和linle或LL做partner,PrincessSnow愿意和水域浪子或伪酷儿做partner。考虑到经费问题,boss刘决定只让找到partner的人去坐过山车,其他的人,嘿嘿,就站在下面看着吧。聪明的Acmer,你可以帮忙算算最多有多少对组合可以坐上过山车吗?
Input
输入数据的第一行是三个整数K , M , N,分别表示可能的组合数目,女生的人数,男生的人数。0
1<=N 和M<=500.接下来的K行,每行有两个数,分别表示女生Ai愿意和男生Bj做partner。最后一个0结束输入。
Output
对于每组数据,输出一个整数,表示可以坐上过山车的最多组合数。
Sample Input
6 3 3
1 1
1 2
1 3
2 1
2 3
3 1
0
Sample Output
3
Author
PrincessSnow
首先想到的直接用dfs的方式找出所有可能
代码如下:
import java.util.Scanner;
public class Main {
static int[][] map;
static int k, n, m, res;
static int[] a;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
res = 0;
k = input.nextInt();
if(k ==0)
break;
n = input.nextInt();
m = input.nextInt();
a = new int[m + 1];
map = new int[n + 1][m + 1];
for (int i = 0; i < k; i++) {
int x, y;
x = input.nextInt();
y = input.nextInt();
map[x][y] = 1;
}
dfs(1, 0);
System.out.println(res);
}
}
public static void dfs(int index, int count){
if(index>n){
if(count>res){
res = count;
}
return;
}
for (int i=1; i<=m; i++){
if(map[index][i]==1 && a[i]==0){
a[i] = 1;
dfs(index+1, count+1);
a[i] =0;
}
}
dfs(index+1, count);
}
}
然而直接超时
网上搜了下思路就是匈牙利算法,然后本人按照思路自己写了一下,代码加上了自己的理解
就是直接将女生第一个中意的男生直接分配给女生
重点来了就是当女生中意的男生被选了,就试着让选中该男生的女生换一个男生选。本人简短介绍一下,代码有注释。
import java.util.Arrays;
import java.util.Scanner;
public class Main {
static int[][] map = new int[501][501];//用来存女生是否中意男生
static int k, n, m;
static int[] a = new int[501], b = new int[501];//a数组用来标记选取状况0-1,b数组存的是选中这个男生的女生编号
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (input.hasNext()) {
k = input.nextInt();
if(k ==0)
break;
n = input.nextInt();
m = input.nextInt();
//初始化操作,因为有多组数据,所以每次循环要初始化为0
Arrays.fill(b, 0);
for (int i=0; i<=n; i++){
Arrays.fill(map[i], 0);
}
int x, y;
for (int i = 0; i < k; i++) {
x = input.nextInt();
y = input.nextInt();
map[x][y] = 1;
}
int res=0;
for(int i=1; i<=n; i++){//遍历每个女生
Arrays.fill(a, 0);
if(dfs(i))//查看女生是否能找到伴,是就res+1
res++;
}
System.out.println(res);//最后输出结果
}
}
public static boolean dfs(int index){
for (int i=1; i<=m; i++){//遍历每个男生
if(map[index][i]==1 && a[i]==0){//中意,并且没有被标记
a[i]=1;//先将男生i标记为选中
if(b[i]==0 || dfs(b[i])){//假如b[i]==0就是说男生还没有被选, 就会直接执行下面的,如果b[i]不等于0,dfs(b[i])就让选中该男生的女生换一个选。
b[i] = index;//标记第i个男生的女伴为index
return true;
}
}
}
return false;
}
}
过山车java_航电java2063过山车相关推荐
- 过山车java_杭电oj_2063——过山车(java实现)
packagehduoj;importjava.util.Scanner;///**//* 使用贪心策略://* 优先选择期望partner最少的//*///正解是使用匈牙利算法--最佳指配 publ ...
- 航电系统JAVA_航电系统
航电系统全称"综合航空电子系统",是现代化战斗机的一个重要组成部分,战斗机的作战性能与航空电子系统密切相关. 目录 1简介 2航电系统的发展 ·航电系统向深度和广度发展 ·开放式航 ...
- 过山车java,杭电 acm 2063 ( 过山车 )
Problem Description RPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了.可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生 ...
- 深圳坪山,中国首个全区全域全车无人的RoboTaxi运营区
金磊 整理自 凹非寺 量子位 报道 | 公众号 QbitAI 坐标深圳坪山区. 若是这两天你细心留意,就会发现在街上总能看到异于寻常的出租车. 但更加与众不同的是--乘客后排坐,前面无司机. 例如这样 ...
- 参加智能车大赛还是电赛?在做电磁炮中我找到了答案
我们是来自中北大学的参赛队伍(焦道坤,赵之岑,李炳金),同时参加了智能车和电赛,并在2019年全国电子设计竞赛H题组获得国一的成绩,感谢达尔闻邀约. 应标题,我的答案是:智能车-- 虽然连续两年做智能 ...
- 成都启之航电商:抖音小店使用效果+性价比产品+直播
现在的电商已经成了很多人创业的选择,想要更好的创业,那么就要了解抖音带货,毕竟直播可以带来更多流量,那么下面就和成都启之航电商一起来了解抖音小店使用效果+性价比产品+直播,希望对广大电商创业者有所帮助 ...
- 2018航电多校练习第9场-快速幂
2018航电多校练习第9场-快速幂 Rikka with Badminton Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 52428 ...
- 便携式航电实时系统测试平台工作台设计
测试设计工作台 系统安装完成后,可以启动测试设计工作台,进行测试过程的设计. 测试设计工作台软件启动的快捷方式图标为: 1 快捷方式标 测试设计主界面如下图所示. 2 测试设计工作台主界面 测试项目 ...
- 【金猿人物展】天云数据雷涛:从数据湖到湖仓一体再到数据编织,完成的是燃油车到油电混再到纯电技术的改造...
雷涛 本文由天云数据CEO雷涛撰写并投递参与"数据猿年度金猿策划活动--2022大数据产业趋势人物榜单及奖项"评选. 数据智能产业创新服务媒体 --聚焦数智 · 改变商业 这 ...
最新文章
- 多传感器融合:自动驾驶(上)
- ADMT3.2域迁移之Server2003至Server2012系列(七)安装ADMT3.2
- Rowkey设计_HBase表设计
- Linux下SSH远程连接断开后让程序继续运行解决办法
- (转)Hibernate的配置详解
- 做Web应用程序时应该如何面向对象杂谈
- 苹果id登录_英雄联盟手游是用苹果ID好还是拳头好 账号选择建议_英雄联盟手游...
- 奇妙的定律、理论、原则、效应、...(Amazing Laws,Theories,Principles,Effects,...)
- 英语 —— 辅音浊化
- Bootstrap(一)
- 地理信息系统实习作业——利用ArcGis计算武汉市分区土地利用类型面积
- Ubuntu上安装mujoco
- plant-UML画图笔记
- ActivityManagerService之进程管理(四)
- TM4C123-Peripheral Driver Library
- 云适配陈本峰:我为什么发起“中国企业级H5产业联盟”
- 猿创征文|使用SQL创建学生信息管理数据库(完整)
- 金融行业大数据治理之路——数据模型篇
- 考研英语——书本资料选择复习规划
- Python 批量修改图片格式和尺寸
热门文章
- 给 dom 元素添加 onresize 功能
- 日语2级终于过了,在大学的最后一年
- Qt Stock Exchange System Qt股票交易系统源码 QtK线图 Qt分时图源码
- ipv6 压缩 java_IPv6 地址语法
- 码绘VS手绘(二) 如何让让静态图“动”起来
- GitHub下载指定文件夹的方法(简单快捷)
- Filco minila air 与windows10蓝牙连接问题
- Jquery 甘特图 插件 jQuery.Gantt
- 截瘫的常规治疗措施包含哪些
- python人工智能算法包_Python 人工智能算法工具包 SimpleAI