1. 程式人生 > >簡單的模擬——排座椅

簡單的模擬——排座椅

SSL 1592
洛谷 P1056 排座椅
題目描述
上課的時候總會有一些同學和前後左右的人交頭接耳,這是令小學班主任十分頭疼的一件事情。不過,班主任小雪發現了一些有趣的現象,當同學們的座次確定下來之後,只有有限的D對同學上課時會交頭接耳。同學們在教室中坐成了M行N列,坐在第i行第j列的同學的位置是(i,j),為了方便同學們進出,在教室中設定了K條橫向的通道,L條縱向的通道。於是,聰明的小雪想到了一個辦法,或許可以減少上課時學生交頭接耳的問題:她打算重新擺放桌椅,改變同學們桌椅間通道的位置,因為如果一條通道隔開了兩個會交頭接耳的同學,那麼他們就不會交頭接耳了。

請你幫忙給小雪編寫一個程式,給出最好的通道劃分方案。在該方案下,上課時交頭接耳的學生的對數最少。

分析或思路
讀入1對學生座標時,為該行或該列的陣列+1(即該行或列可以分割多少名學生)然後分別排序這些數值,最後從大到小累加,直到該行或該列不能分割為止
(這裡給個提醒:用選擇排序或氣泡排序,使用快排會有神祕的錯誤!)

type arr=array[1..1000]of longint;

var  h,k1,k2,l,n,x1,x2,y1,y2,i,j:longint;
     a1,a2,x,b,a:arr;

procedure qsort(k:longint);
var i,j,t:longint;
begin
  for i:=1 to k-1 do
    for j:=i+1
to k do if b[i]>b[j] then begin t:=b[i]; b[i]:=b[j]; b[j]:=t; end; end; procedure sort(n:longint); var i,j,t:longint; begin for i:=1 to n-1 do for j:=i+1 to n do if (a[i]<a[j]) then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; t:=b[i]; b[i]:=b[j]; b[j]:=t; end
; end; begin read(h,l,k1,k2,n); for i:=1 to n do begin readln(x1,y1,x2,y2); if x1=x2 then begin if y1>y2 then inc(a1[y2]); if y1<y2 then inc(a1[y1]); end; if y1=y2 then begin if x1>x2 then inc(a2[x2]); if x1<x2 then inc(a2[x1]); end; end; for i:=1 to l do x[i]:=i; a:=a2; b:=x; sort(l); qsort(k1); for i:=1 to k1 do write(b[i],' '); for i:=1 to h do x[i]:=i; writeln; a:=a1; b:=x; sort(h); qsort(k2); for i:=1 to k2 do write(b[i],' '); end.

相關推薦

簡單模擬——座椅

SSL 1592 洛谷 P1056 排座椅 題目描述 上課的時候總會有一些同學和前後左右的人交頭接耳,這是令小學班主任十分頭疼的一件事情。不過,班主任小雪發現了一些有趣的現象,當同學們的座次確定下

洛谷 1056——座椅簡單模擬

題目描述 上課的時候總會有一些同學和前後左右的人交頭接耳,這是令小學班主任十分頭疼的一件事情。不過,班主任小雪發現了一些有趣的現象,當同學們的座次確定下來之後,只有有限的D對同學上課時會交頭接耳。同學們在教室中坐成了M行N列,坐在第i行第j列的同學的位置是(

模擬座椅

題目描述 上課的時候總有一些同學和前後左右的人交頭接耳,這是令小學班主任十分頭疼的一件事情。不過,班主任小雪發現了一些有趣的現象,當同學們的座次確定下來之後,只有有限的D對同學上課時會交頭接耳。同學們在教室中坐成了M行N列,坐在第i行第j列 的同學的位置是(i,

【題解】洛谷P1056座椅[NOIP2008普及] 模擬

題目連結 #include<cstdio> #include<algorithm> using namespace std; const int N=1010; int x[N],y[N],xn[N<<1],yn[N&l

php 使用curl 進行簡單模擬提交表單

8.0 bin field this class chrom 提交表單 bsp alt //初始化curl $ch = curl_init(); $url = ‘xxx‘; $option = [ CURLOPT_URL => $url, CURLO

P1056 座椅

lba 輸出格式 -a 現象 algorithm 們的 技術分享 amp http P1056 排座椅 題目描述 上課的時候總會有一些同學和前後左右的人交頭接耳,這是令小學班主任十分頭疼的一件事情。不過,班主任小雪發現了一些有趣的現象,當

python簡單模擬:把樹存儲在數據表中

數據庫 __main__ __name__ com clas list lis 數據表 name 在數據庫中建立一個表,有Id, fatherId, value 三個字段,就可以存儲一個樹。 如何把該表中的數據以樹的形式呈現出來,下面小弟用python簡單模擬一下。 初學p

洛谷——P1056 座椅

唯一性 分享 pan 同學 進出 blank mpc std pre https://www.luogu.org/problem/show?pid=1056#sub 題目描述 上課的時候總會有一些同學和前後左右的人交頭接耳,這是令小學班主任十分頭疼的一件事情。不過,班主

多線程練習(簡單模擬火車站多窗口同時售票)

火車 thread art this 模擬 練習 lis span 對象 模擬火車站售票窗口同時售票 public class xianchenglianxi { public static void main(String arg[]){

大魚吃小魚(簡單模擬

一個 入棧 nco http spa println code tar pre 題目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1289 從左往右將數字壓入棧裏(想象成一個水平向右的棧),如果

HihoCoder1052基因工程(簡單模擬題)

修改方法 ace lib stream 方法 div 最小 mes 大寫 描述 小Hi和小Ho正在進行一項基因工程實驗。他們要修改一段長度為N的DNA序列,使得這段DNA上最前面的K個堿基組成的序列與最後面的K個堿基組成的序列完全一致。 例如對於序列"ATCGA

7-18 銀行業務隊列簡單模擬(25 分)

時間間隔 int fin scanf 就是 偶數 static log 辦理 設某銀行有A、B兩個業務窗口,且處理業務的速度不一樣,其中A窗口處理速度是B窗口的2倍 —— 即當A窗口每處理完2個顧客時,B窗口處理完1個顧客。給定到達銀行的顧客序列,請按業務完成的順序輸出

Java簡單模擬Android中Handler-Message機制

就是 示例代碼 pri 技術分享 android ble [] handle @override 在Android中主線程與子線程的通信十分重要,Google工程師為我們提供了Handler-Message機制來解決他們之間的交互問題。今天,我們就來簡單理解Handler-

spring中的工廠原理簡單模擬

spring中的工廠原理簡單模擬 package service; import dao.User;import factory.Factory; public class Test {// private static User user = new UserImpl();//耦合度太高 private

簡單模擬jQuery創建對象的方法,以及封裝一個js動畫框架

動畫框架 dst nts 創建 pro 以及 原型 time parse 今天無事點開了N年未點開的慕課網,看了一個js動畫框架的視頻,心血來潮用jQuery的方法封裝了一下,雖然不如jQuery,但是還是有點點所獲。 什麽都不說,直接上代碼: /** * 這是框架的

Luogu P1056 座椅

printf space ons mes 進出 符號 node 一個 描述 題目描述 上課的時候總會有一些同學和前後左右的人交頭接耳,這是令小學班主任十分頭疼的一件事情。不過,班主任小雪發現了一些有趣的現象,當同學們的座次確定下來之後,只有有限的D對同學上課時會交頭接耳。同

普及組2008NOIP 座椅(貪心+排序)

EDA 事情 的人 div 輸出 end 表示 num lse 排座椅 時間限制: 1 Sec 內存限制: 50 MB提交: 4 解決: 3[提交][狀態][討論版][命題人:外部導入] 題目描述 上課的時候總有一些同學和前後左右的人交頭接耳,這是令小學班主任十分頭

簡單模擬評論效果

click element gin 分享圖片 black info 函數 parse border 簡單模擬評論效果 <!DOCTYPE html> <html lang="en"> <head> <met

P1051 誰拿了最多獎學金 洛谷 (C++)(簡單模擬)

ctype efi 記錄 簡單模擬 clas style namespace .class int 根據題意模擬就好了,更新最大值,記錄下標。 (話說我也想要這麽多的獎學金啊.. #include <iostream> #include <cctype&

PTA 7-1 銀行業務隊列簡單模擬

stat nbsp bool ont ace troy color flow efi   用鏈表實現隊列操作,代碼如下: 1 #include <iostream> 2 #include <cstdio> 3 #include