博主與合併果子鬥爭許久了,最初接觸到的便是貪心。
於是就有如下雙佇列的方法。
#include #include #include #include #include #include #include #include #include #include #define re return
#define s(a) sizeof(a)
#define maxx(a,b,c) max(max(a,b),c)
#define minx(a,b,c) min(min(a,b),c)
#define up(i,m,n) for(int i=m;i<=n;i++)
#define down(i,m,n) for(int i=n;i>=m;i--)
using namespace std;
const int maxn=30005;
int a[maxn],b[maxn],n;
inline int init()
inline int solve() }
int get()
re tot;
}int main()
cout<
但是,但是,博主昨晚睡覺是yy出了很強的方法,有受堆的思想的影響;
若每次都是取最小的乙個,為什麼不把最小的放在隊尾,每次去最後乙個,放入時用乙個sort不就好了麼
於是#include #include #include #include #include #include #include #include #include #include #define re return
#define clr(a,b) memset(b,a,s(a))
#define s(a) sizeof(a)
#define maxx(a,b,c) max(max(a,b),c)
#define minx(a,b,c) min(min(a,b),c)
#define up(i,m,n) for(int i=m;i<=n;i++)
#define down(i,m,n) for(int i=n;i>=m;i--)
using namespace std;
const int maxn=30005;
int f[maxn],n;
bool cmp(const int &a,const int &b)
void init()
int make()
int push(int x)
int main()
cout<
汗!!!
於是改進,
時間複雜度驟降(log n (不知是否算錯)),大家注重理解;(有讀入優化可以copy走)
#include #include #include #include #include #include #include #include #include #include #define re return
#define s(a) sizeof(a)
#define maxx(a,b,c) max(max(a,b),c)
#define minx(a,b,c) min(min(a,b),c)
#define up(i,m,n) for(int i=m;i<=n;i++)
#define down(i,m,n) for(int i=n;i>=m;i--)
using namespace std;
const int maxn=30005;
int f[maxn],n;
template inline int read(t &x)
while(ch>='0' && ch<='9')
x *= flag;
return 1;
}int make(int x)
{ int t;
t=x;
for(int i=t+1;i<=n;i++)
if(f[i]
合併石子(三種方法)
在乙個操場上一排地擺放著n堆石子。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2堆石子合併成新的一堆,並將新的一堆石子數記為該次合併的得分。請設計乙個程式,計算出將n堆石子合併成一堆的最小得分。每組資料第1行為乙個正整數n 2 n 100 以下n行,每行乙個正整數,小於10000,分別表示第i...
三種方法 2020 11 23
利用連線類,例項化得到連線物件 連線類 連線物件 new 連線類 cmd.executescalar cmd.excutereader 關注其中一條資料 物件名.read 獲取關注列所對應的值 console.writeline 物件名 name while 物件名.read 功能,聚焦下一行資料。...
LeetCode題解兩數之和(三種方法)
題目 給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。題目分析 題中會給出乙個nums整數陣列和乙個target值,在陣列中找到2個數之和等於ta...