這道題暴力拿了90分,正解實在不會寫!
因為字串不好操作,所以乾脆把它變成乙個int的陣列,最後輸出時直接把數字轉換成字元輸出。
首先考慮我們的貪心策略:(下標從1開始),設k為我們已經處理過的位置的個數,初始時k=0。只要我們的操作次數還有剩餘,那麼就考慮第k+1個位置能通過交換操作得到的最小的數字是多少。
**如下
#include#define r register intusing
namespace
std;
const
int inf=0x3f3f3f3f
;typedef
intll;
const
int n=100005
;char
ch[n];
ints[n];
ll m;
intk;
intmain()
}for(r i=tmp;i>k+1;i--)
m-=tmp-k-1;k++;//把r位置的數字移動到l位置,需要使用r-l次操作
}for(r i=1;i<=len;i++) putchar(s[i]);
return0;
}
YbtOj練習 貪心4 修改序列
看到資料範圍,就想寫乙個線性複雜度的演算法,一開始我是這樣的 includeusing namespace std const int n 1e5 5 int n,a n ans,b n intmain 提交後只有50分 資料太水了,竟然拿到了50分 這種做法顯然是錯誤的,因為它只以1為基準構造了乙...
YbtOj練習 貪心 1最大積分
這道題的題意描述有問題。問題很大,導致我wa了無數次。如果看這句話很容易就會理解錯。在我wa了n次之後看到了這兩個字,哦豁,原來這裡的意思是當你在第i級時,如果買的總件數達到了t i 那麼就可以公升級。includeusing namespace std typedef unsigned long ...
ybtoj 貪心 堆 例題3 畜欄預定
傳送門題目 以奶牛開始吃草時間排序 可以發現,只要畜欄的最後一頭奶牛結束吃草時間越早,接上奶牛的可能性就越大 用小根堆,以畜欄的結束吃草時間實時排序 include include include include using namespace std struct dt a 50100 t int...