維護乙個棧
從前往後掃瞄,如果棧為空或當前數及之後數中的最大值大於棧頂的數,就將最大值之前的所有數入棧,並且把最大值儲存在答案中。
否則將棧頂的元素彈出,並儲存在答案中。
由於最大值從後往前是單調遞增的,所以直接用乙個陣列維護就可以o(1)查詢
#include.h>
using namespace std;
const int n
=200005
;int n,a[n]
,ans[n]
,f[n
],tot,now;
stacks;
int read()
while
(ch>=
'0'&&ch<=
'9')
return sum*f;
}void
print
(int x)
int main()
int i=1;
while
(i<=n+1)
ans[
++tot]
=now;
i++;}
else
}for
(int i=
1;i<=n;i++
)return0;
}
用乙個桶b[]
b[ ]
b[]統計所有攻擊力的小弟個數。
從小到大列舉使用腐敗藥水的次數,把能拉過來的小弟都拉過來,當小弟的攻擊力ans>=sum (血量總值)時就跳出。這樣保證腐敗藥水的次數一定是最小的。
保證ans>=sum的前提下,刪去小弟中多餘的。
先刪3 因為3的花費為4,顯然最不划算
然後刪2 因為2和1的花費相同,但2比1攻擊力貢獻多1
最後刪1
#include.h>
using namespace std;
const int n
=5000005
,maxn=
30000
;int n,m,sum,x,ans,s1,s2,s3,tot;
int b[n]
;int read()
while
(ch>=
'0'&&ch<=
'9')
return sum*f;
}void
print
(int x)
bool comp
(int a,int b)
int main()
for(int i=
1;i+
2<=maxn;i+=3)
if(answhile
(ans-
3>=sum&&s3)
while
(ans-
1>=sum&&s1)
while
(ans-
2>=sum&&s2)
print
(tot)
;putchar
(' ');
print
(s1+s2+s3*
4+tot)
;return0;
}
先求出所有數的最大值ma,最小值mi。
然後二分列舉答案ans。
check()函式中把圖分成a,b兩部分:
若能保證a部分的所有數x,滿足x>=ma-ans ;b部分的所有數y,滿足y>=ans-mi,則當前ans合法。
否則把圖旋轉九十度,繼續check,一直旋轉到原來仍不合法,則當前ans不合法。
#include.h>
using namespace std;
const int n
=2005
,inf=
0x3f3f3f3f
;int n,m,a[4]
[n][
n],f[n][
n],k=1
,mi,ma;
int max
(int x,int y)
int min
(int x,int y)
int read()
while
(ch>=
'0'&&ch<=
'9')
return sum*f;
}void
print
(int x)
void
init
(int x,int y)
int judge
(int now)
else f[i]
[j]=1;
}for
(int i=n;i>=
1;i--
)for
(int j=m;j>=
1;j--
)return1;
}void
change()
int check
(int now)
int main()
init(0
,1);
init(1
,2);
init(2
,3);
int l=
0,r=ma-mi;
while
(lprint
(l);
return0;
}
noip模擬賽 水題
題目描述 lyk出了道水題。這個水題是這樣的 有兩副牌,每副牌都有n張。對於第一副牌的每張牌長和寬分別是xi和yi。對於第二副牌的每張牌長和寬分別是aj和bj。第一副牌的第i張牌能覆蓋第二副牌的第j張牌當且僅當xi aj並且yi bj。注意牌不能翻轉 當然一張牌只能去覆蓋最多一張牌,而不能覆蓋好多張...
noip模擬賽 密碼
表示沒看懂演算法3 問題描述 有壓迫,就有反抗。mored的寵物在法庭的幫助下終於反抗了。作為乙隻聰明的寵物,他打算把魔法使mored的魔法書盜去,奪取mored的魔法能力。但mored怎麼會讓自己的魔法書輕易地被盜取?mored在魔法書上設定了乙個密碼鎖,密碼鎖上有乙個問題。施以斯臥鋪魔法吧,你有...
NOIP模擬賽 老師
題目描述 一座有n層的教學樓裡有一些學生,第i 0 i n 層有studentsi個學生。你被給定了乙個數k,如果第i層有x個學生,那麼這一層需要 x k 個老師。你可以調整每個學生的樓層,但是每個學生至多只能調整一層,就是說第i層的學生只能去第i 1層 如果有的話 第i層 第i 1層 如果i 1 ...