TYVJ P1007 排座椅
来源:互联网 发布:宜春网络问政 编辑:程序博客网 时间:2024/04/20 13:40
描述
上课的时候总有一些同学和前后左右的人交头接耳,这是令小学班主任十分头疼的一件事情。不过,班主任小雪发现了一些有趣的现象,当同学们的座次确定下来之后,只有有限的D对同学上课时会交头接耳。同学们在教室中坐成了M行N列,坐在第i行第j列的同学的位置是(i,j),为了方便同学们进出,在教室中设置了K条横向的通道,L条纵向的通道。于是,聪明的小雪想到了一个办法,或许可以减少上课时学生交头接耳的问题:她打算重新摆放桌椅,改变同学们桌椅间通道的位置,因为如果一条通道隔开了两个会交头接耳的同学,那么他们就不会交头接耳了。
请你帮忙给小雪编写一个程序,给出最好的通道划分方案。在该方案下,上课时交头接耳的学生对数最少。
输入格式
输入的第一行,有5各用空格隔开的整数,分别是M,N,K,L,D(2<=N,M<=1000,0<=K
#include <stdio.h>#include <stdlib.h>int Col[1000];int Row[1000];int Col_Num[1000];int Row_NUM[1000];void Define(int Row1,int Col1,int Row2,int Col2);int FindMax(int* Line,int n);int FindMin(int* Line,int n);int Min(int A,int B);int main(){ int M,N,K,L,D; int i,j; int Tmp1,Tmp2; int Row1,Col1,Row2,Col2; Col[1000]=0; Row[1000]=0; scanf("%d%d%d%d%d",&M,&N,&K,&L,&D); for(i = 0;i < D;i++) { scanf("%d%d%d%d",&Row1,&Col1,&Row2,&Col2); Define(Row1,Col1,Row2,Col2); // printf("a\n"); } //printf("b\n"); for(i = 0;i < K;i++) { Tmp1=FindMax(Row,M); Row_NUM[i]=Tmp1; } Tmp1=FindMin(Row_NUM,K); for(i = 0;i < K-1;i++) { printf("%d ",Tmp1); Tmp1=FindMin(Row_NUM,K); } printf("%d\n",Tmp1); //printf("c\n"); for(i = 0;i < L;i++) { Tmp2=FindMax(Col,N); Col_Num[i]=Tmp2; } Tmp2=FindMin(Col_Num,L); for(i = 0;i < L-1;i++) { printf("%d ",Tmp2); Tmp2=FindMin(Col_Num,L); } printf("%d\n",Tmp2); //printf("d\n"); //system("pause"); return 0;}void Define(int Row1,int Col1,int Row2,int Col2){ if(Row1==Row2) Col[Min(Col1,Col2)]++; if(Col1==Col2) Row[Min(Row1,Row2)]++; //printf("e\n");}int FindMax(int* Line,int n){ int i; int j=0; for(i = 0;i < n;i++) { if(Line[i]>Line[j]) j=i; } Line[j]=0; //printf("f\n"); return j;}int FindMin(int* Line,int n){ int i; int j=0; int Tmp; for(i = 0;i < n;i++) { if(Line[i]<Line[j]) j=i; } Tmp=Line[j]; Line[j]=9999; //printf("f\n"); return Tmp;}int Min(int A,int B){ return (A<B)?A:B;}
0 0
- TYVJ P1007 排座椅
- TYVJ P1007 排座椅
- |Tyvj|NOIP2008|贪心|P1007 排座椅
- P1007 --- 排座椅
- P1007排座椅
- 排座椅
- 排座椅
- 排座椅
- 排座椅
- 排座椅
- Tyvj 1007 排座椅 4次快排 VS 两次快排+维护Topk数组 贪心
- 排座椅 题解
- 【贪心】排座椅
- sicily1762 排座椅
- 排座椅【贪心】
- 洛谷1056 排座椅
- NOIP 2008 - 排座椅
- NOIP2008(2)排座椅
- [LeetCode]Binary Tree Level Order Traversal II
- Pat 1059
- 基于Fujitsu FM3 32-bit ARM Cortex-M3 内核的MCU 开发
- hdu 2102 A计划
- SqlHelper类的使用
- TYVJ P1007 排座椅
- POJ 3186 Treats for the Cows(区间DP)
- Android错误之 Requires VIBRATE permission
- vector赋值
- Lib1vent:10链接监听器接受TCP链接
- TYVJ P1007 排座椅
- 初探NO.4—SVM_guide教你直接用支持向量机
- 【问底】陈焕生:深入理解Oracle 的并行执行
- 2015年2月13日