洛谷 2873 泥水坑
洛谷 2869 美食的食草動物
洛谷 2870 最佳牛線
#include
#include
#include
#include
#define rr register
using
namespace std;
const
int n=
1001
;struct reca[n*n]
;int n,m,xx[n]
,yy[n]
,f[n]
,now,tot;
double ans;
inline
signed
iut(
)bool
cmp(
const rec a,
const rec b)
inline
long
longw(
int x)
inline
signed
getf
(int u)
signed
main()
for(rr int i=
1;i++i)
for(rr int j=i+
1;j<=n;
++j)if(
getf
(i)!=
getf
(j)) a[
++tot]
=(rec)
;sort
(a+1
,a+1
+tot,cmp)
;for
(rr int p=
1;now++p)
return
!printf
("%.2lf"
,ans)
;}
#include
#include
#include
#define rr register
using
namespace std;
const
int dx[4]
=,dy[4]
=;struct rec
;int zx,zy,n,dis[
1011][
1011];
bool v[
1011][
1011];
inline
signed
iut(
)signed
main()
rr queueq; q.
push
((rec));
v[zx]
[zy]=1
; dis[zx]
[zy]=0
;while
(q.size()
));}
}}
其實題目應該翻譯成美食家標準的食草動物
n
nn頭牛,m
mm種飼料,牛所想要的是不低於它想要的**以及不低於它想要的鮮美程度,每種飼料最多只能被一頭牛享用,問農夫所需的最小費用
首先,考慮按照鮮美程度從大到小排序,然後雙指標,然後要取出費用最優的刪掉,考慮用平衡樹,但是stl::multiset不是更好嗎
#include
#include
#include
#include
#define rr register
using
namespace std;
const
int n=
100011
;struct rec
}a[n]
,b[n]
;multiset<
int>uk;
bool flag;
int n,m;
long
long ans;
inline
signed
iut(
)signed
main()
;for
(rr int i=
1;i<=m;
++i)
b[i]
=(rec)
;sort
(a+1
,a+1
+n),
sort
(b+1
,b+1
+m);
for(rr int i=
1,j=
1;i<=n;
++i)
ans+
=*it; uk.
erase
(it);}
printf
("%lld"
,flag?-1
:ans)
;return0;
}
有乙個字串,可以從首尾取出乙個字母,問依次組成的字串字典序最小的方案
首先如果乙個字串首尾字元不同,那麼肯定選擇小的,但問題是如果相等選其中乙個會不會導致答案不優,所以考慮找到第乙個不相等的位置,使用二分判定,用哈希求是否相等,時間複雜度o(n
logn
)o(nlogn)
o(nlog
n)字尾陣列dalao太強了
#include
#include
#define rr register
using
namespace std;
typedef
unsigned
long
long ull;
const ull p=
13731
;ull ba[
500011
],pr[
500011
],su[
500011];
char a[
500011];
int n,now;
inline ull spr
(int l,
int r)
inline ull ssu
(int l,
int r)
signed
main()
for(rr int i=
1;i<=n;
++i) pr[i]
=p*pr[i-1]
+(a[i]^64
);for(rr int i=n;i>=1;
--i) su[i]
=p*su[i+1]
+(a[i]^64
);rr int l=
1,r=n;
while
(l<=r)
if(a[l+l-1]
)putchar
(a[l++])
;else
putchar
(a[r--])
;if((
++now)%80
==0)putchar(10
);}return0;
}
NOIP提高組 矩陣
在麥克雷的面前出現了乙個有n m個格仔的矩陣,每個格仔用 或 表示,表示這個格仔可以放東西,則表示這個格仔不能放東西。現在他拿著一條1 2大小的木棒,好奇的他想知道對於一些子矩陣,有多少種放木棒的方案。因為棍子是1 2的,所以很容易就能發現,兩個被分割的塊,除了跨越兩個塊擺放木棍的方案數會對答案有影...
NOIP提高組2005 過河
過河 river 問題描述 在河上有一座獨木橋,乙隻青蛙想沿著獨木橋從河的一側跳到另一側。在橋上有一些石子,青蛙很討厭踩在這些石子上。由於橋的長度和青蛙一次跳過的距離都是正整數,我們可以把獨木橋上青蛙可能到達的點看成數軸上的一串整點 0,1,l 其中l是橋的長度 座標為0的點表示橋的起點,座標為l的...
NOIP提高組 20151029模擬
其實這套題目並不算太難,但是還是發揮不了100 水平。第一題直接線性篩法,求出質數,然後就可以判斷乙個數是否為質數了。這道題還可以用miller rabin去求,後者的速度較快,如果資料再大些,就要使用後者了。第二題,比賽時發現了,當n 7時,答案會每四個一迴圈,但是就沒有繼續往下想,其實想下去會想...