uva 11134 傳說中的車 從簡單情形入手
從簡單情形入手:
考慮只有一列,有n行,現在每個棋子的區域就是一個[le,ri],
那麼問題就是在n個線段區域內的每個區域選一個點,使得1,2,3,...,n每個格子都被選中恰好一次。
不拿發現解法就是貪心,
再作進一步考慮:現在有n個區間,n行,n列,所有列都被選中了,現在考慮怎樣使每一行都被選中且僅選中一次,
無論n個區間是怎樣選擇使得每一列都被選中,每一區間都必須選一個行,
也就是說滿足每一列都被選中一次,與滿足每一行都被選中一次是無關的。
原問題的 等價於 : n個區間,每個範圍有兩條線段[le,ri],[up,down],
在每個[le,ri]內選一個格子,使得列[1,n]每一列都被選中一次。區間i所選的列記為ans[i][0]。
在每個[up,down]內選一個格子,使得行[1,n]每一列都被選中一次。區間i所選的列記為ans[i][1]。
那麼棋子i的位置就是[ans[i][0],ans[i][1]]。
/**========================================== * This is a solution for ACM/ICPC problem * * @source£ºuva 11134 * @type: 問題分解 * @author: wust_ysk * @blog: http://blog.csdn.net/yskyskyer123 * @email:
[email protected] *===========================================*/ #include<cstdio> #include<string> #include<cstring> #include<iostream> #include<cmath> #include<algorithm> #include<queue> using namespace std; typedef long long ll; const int INF =0x3f3f3f3f; const int maxn= 5000 ; struct Node { int le,ri,ind; bool operator<(const Node y)const { return ri>y.ri; } } a[maxn+4],b[maxn+4]; int n; int ans[maxn+4][2]; bool cmp(Node x,Node y) { return x.le<y.le; } bool work(Node x[],int kind) { priority_queue<Node>q; int pos=1; for(int i=1;i<=n;i++) { while(!q.empty()&&q.top().ri<i) { q.pop(); } while(pos<=n&&x[pos].le<=i) { q.push(x[pos++]); } if(q.empty()) return false; Node tmp=q.top();q.pop(); int &ind=tmp.ind; ans[ind][kind]=i; } return true; } int main() { while(~scanf("%d",&n)&&n) { for(int i=1;i<=n;i++) { scanf("%d%d%d%d",&a[i].le,&b[i].le,&a[i].ri,&b[i].ri); a[i].ind=b[i].ind=i; } sort(a+1,a+1+n,cmp); sort(b+1,b+1+n,cmp); if(!work(a,0)||! work(b,1) ) { puts("IMPOSSIBLE"); continue; } for(int i=1;i<=n;i++) { printf("%d %d\n",ans[i][0],ans[i][1]); } } return 0; }
相關推薦
uva 11134 傳說中的車 從簡單情形入手
從簡單情形入手: 考慮只有一列,有n行,現在每個棋子的區域就是一個[le,ri], 那麼問題就是在n個線段區域內的每個區域選一個點,使得1,2,3,...,n每個格子都被選中恰好一次。 不拿發現解法就是貪心, 再作進一步考慮:現在有n個區間,n行,n列,所有列都被選中
企業網站優化如何從簡單中挖掘優化效果
問題 打開 程序 加工 優化 網站 相關 更多 作用 實際上說到企業網站的搜索引擎優化,在優化圈子裏面是相對簡單的事情,因為百度自身往往對企業網站相對看中,收錄速度快,而且也更願意提升企業網站的排名,這一點在百度推出官網計劃之後,就更加明顯,因為這是百度提升自身用戶體驗
UVa 12716 GCD XOR (簡單證明)
i++ map esp typedef -a type print const max 題意: 問 gcd(i,j) = i ^ j 的對數(j <=i <= N ) N的範圍為30000000,有10000組例子 思路:GCD(a,b) = a^b =
Libevent使用例子,從簡單到復雜
enable targe 描述 har ron 請求 got memset repl 轉載請註明出處:http://blog.csdn.net/luotuo44/article/details/39670221 本文從簡單到復雜,展示如何使用l
jquery $.post() 向php傳值 實現簡單的二級聯動
chang var box jquer lec 簡單 cnblogs encode can 1 其中selectid是一個下拉菜單的id 2 3 $().ready(function () { 4 $("#selectid").change(functi
gcc/g++編譯(生動形象,從最容易入手的hello world解釋了庫的概念)
默認 是我 包含 gcc編譯 not found 拷貝 使用 用戶 做了 1. gcc/g++在執行編譯工作的時候,總共需要4步 (1).預處理,生成.i的文件[預處理器cpp] (2).將預處理後的文件不轉換成匯編語言,生成文件.s[編譯器egcs] (3).有匯編變為
maven傳建一個簡單的web項目
maven插件 ron www. version str 創建 mage info -- 1、確認maven插件和配置在eclipse中已經完成 如果沒完成,可參考這篇博客:http://www.cnblogs.com/mmzs/p/8191979.html 2、在
UVa 11134 Fabled Rooks 算法分析
端點 處理 我們 example lob problem 經典 一個點 本質 難度:β 用時:0 題目:?? 代碼:?? 這是一道區間貪心題。 題目都不用花心思建模了。要求相當明確。就是要把 n 個點放在 一個 n x n 的網格裏,要求點與點不能共行或共列,每個點
UVA 11134 Fabled Rooks(貪心的妙用+memset誤用警示)
\n UC 錯誤 百度 函數傳參 用法 min 開始 != 題目鏈接: https://cn.vjudge.net/problem/UVA-11134 1 /* 2 問題 輸入棋盤的規模和車的數量n(1=<n<=5000),接著輸入n輛車的所能在的矩陣
awk從簡單到復雜
awk shell1、語法和參數說明語法awk [options] 'script' var=value file(s)或awk [options] -f scriptfile var=value file(s)或awk [options] 'pattern{action}'
python小白到底要從哪裏入手python呢?
python 爬蟲 運維 人工只能1、選擇Python版本 對於Python工程師來說,Python的版本則是你們的工作環境。所以在學習之前一定要考慮選擇一個合適自己的版本,Python3對零基礎的小白很友好,易上手。選好版本後就可以開始學習了。 2、學習Python基礎知識 Python 是一個有條理的、
小程序開發 從簡單的 crud 開始
按鈕 success 關鍵字 mil real 我們 edi 每次 pro 關鍵字:“小程序 API” 【WXML 完成布局】 <view> == <div> {{}} == <%= %> ejs | jsp2 <block
OD 實驗(十六) - 從對話框入手對程序的逆向
gpa 右鍵 入棧 template ESS 接下來 步驟 技術 img 對話框: 對話框從類型上分為兩類:modal 對話框和 modeless 對話框,就是模態對話框和非模態對話框,也有叫成模式和非模式 模態對話框不允許用戶在不同窗口間進行切換,非模態對話框允許用戶
JavaWeb-form傳值(從一個jsp頁面傳資料到另一個jsp頁面)
第一個頁面,login.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%-- 本行程式碼可以防止亂碼出現 --%> <%
從簡單的演算法初探過程彙編 棧幀指標
從簡單的演算法初探過程彙編 棧幀指標 作者:zcabcd123 從簡單的演算法初探過程彙編 轉載自 搗亂小子 趁年輕,用程式碼實現夢想 — daoluan.net 不忽視彙編 較於我們日常接觸的高階語
檔案上傳加nodejs簡單伺服器
1.隨便找一個空的資料夾,執行命令,有提示之後一路回車: npm init 2.安裝express: npm install express --save 3.在建好的專案下建一個server.js,在server.js寫上一下程式碼: var express = require
C# in Depth學習筆記-從簡單的資料型別開始
C# 1中定義的產品型別 以定義一個表示產品的型別作為開始,然後進行處理。 其中Product 型別內部封裝了幾個屬性。同時還要建立預定義產品的一個列表。 //程式碼清單1-1 public class Product { string name; public string Na
估算上海企業搜尋營銷成本,SEO優化公司清法網路從3方面入手
品牌轉型升級擴知名度,“搜尋營銷”自是一個少不了的品推參謀方案。所以企業的相關負責人員免不了要立項申請,確定一下營銷計劃與搜尋營銷策略,以方便決策層進行參考、比價。這也就意味著,立項團隊需要對自己的方案進行預算評估,從成本與預期效果上為企業提供可供參考的方案比對資料。那麼對於案子的策劃人員來說,該以怎樣的思路
估算上海企業搜索營銷成本,SEO優化公司清法網絡從3方面入手
技術分享 相關 負責 點擊率 image 是把 seo 分享圖片 註意 品牌轉型升級擴知名度,“搜索營銷”自是一個少不了的品推參謀方案。所以企業的相關負責人員免不了要立項申請,確定一下營銷計劃與搜索營銷策略,以方便決策層進行參考、比價。這也就意味著,立項團隊需要對自己的方案
估算上海企業搜尋營銷成本,SEO優化公司清法網路從9方面入手
品牌轉型升級擴知名度,“搜尋營銷”自是一個少不了的品推參謀方案。所以企業的相關負責人員免不了要立項申請,確定一下營銷計劃與搜尋營銷策略,以方便決策層進行參考、比價。這也就意味著,立項團隊需要對自己的方案進行預算評估,從成本與預期效果上為企業提供可供參考的方案比對資料。那麼對於案子的策劃人員來說,該以怎樣的思路