演算法競賽入門經典(劉佳汝)例題(一)

2021-09-16 20:59:02 字數 530 閱讀 7900

王國裡有一條n個頭的惡龍,共有m個騎士可以僱傭,乙個能力值為x的騎士可以砍掉惡龍乙個直徑不超過x的頭,並且需要支付x個金幣。問,如何僱傭騎士才能花最少的錢砍掉惡龍所有的頭?

【輸入格式】

第一行為正整數n和m(1<=n,m<=2000);以下n行每行乙個整數,即惡龍的頭的直徑;以下m行每行乙個整數,即每個騎士的能力。

【輸出格式】

輸出最小花費,如果無解,輸出「loo-water is doomed」

博主淺薄的思路:粗一看是乙個需要排序的問題,能力值小於直徑最小的頭的騎士可以首先排除,再來進行對應判斷。思路比較容易,**也就很清晰了。這裡給出書上的示例**。

#include#includeusing namespace std

const int maxn= 20000+ 5;

int a[maxn],b[maxn];

int main()

if(cur**風格十分簡潔,本題也沒有什麼明顯的坑點,稍微需要注意一點的應該是陣列的長度和一位騎士只能砍掉乙個頭。

演算法競賽入門經典例題

7744問題 問題 輸出所有形如aabb的四位完全平方數 即前兩位數字相等,後兩位數字也相等 include include int main 開燈問題 include include define maxn 1010 int a maxn int main int n,k,first 1 mems...

演算法競賽入門經典 例題4 1

uva1339 ancient cipher 題目意思為判斷明文是否可以經過位置變換以及字母替換得到密文。因為不需要輸出替換方案,只判斷存在性,那就先不考慮搜尋。位置變換不用考慮,因為只要長度一樣,就肯定能逆回去,關鍵是字母替代。可以把明文和密文先進行排序,然後看模式是否相同,比如題目中第一組測試資...

演算法競賽入門經典 例題4 5

uva512 spreadsheet tracking 給定乙個 和一些操作序列,輸出給定單元格在這些操作後的位置。如果在整個 上模擬操作,那麼就需要記錄原始 和最終 中每乙個單元格的對應關係,比如可以通過給單元格內容編號,新加入的單元格編號全0,刪除原始單元格則編號全部改 1,最後在整個 中搜尋原...