洛谷 NOIP提高組模擬賽 Day1

2022-05-12 10:31:53 字數 2619 閱讀 1437

傳送門

## $t1$

一道結論題,設原來a隊能力最大的是x,那麼a隊的選擇方案就是$2^$,b隊的選擇方案就是$(2^-1)$種,因為不能不選。其中$1\leq x\leq n$,那麼根據乘法原理,最後的答案就是 $\sum\limits^_2^*(2^-1)$,化簡可得 $ans=n*2^-(2^-1)$,然後乙個快速冪就行了。

#include#include

#include

#define int long long

using

namespace

std;

const

int mod = 1e9+7

;typedef

long

long

ll;int

n;int fast_pow(int x,int

y)

return

ret;

}signed main()

view code

## $t2$

一道比較套路的題吧,首先肯定是先按每個物品的消失時間排序,然後就可以跑揹包了,$f[i][j]$表示到了第$i$個物品,時間為$j$的最大收益,時間複雜度$o(n*max\_d)$。輸出方案考試時候想了挺久。。。其實就是倒著走回去。

#include#include

#include

#include

#include

using

namespace

std;

const

int maxn = 105

;inline

intrd()

while(isdigit(ch))

return f?x:-x;

}int

n,ans,lx,ly,all[maxn],cnt;

int f[maxn][2005

];struct

nodedata[maxn];

inline

bool

cmp(node a,node b)

intmain()

for(int i=0;i<=data[n].d;i++)

if(f[n][i]>ans)

lx=n;cout

for(int i=n;i;i--)

for(int j=ly;j>=0;j--)

if(f[i][j]==ans)

printf(

"%d\n

",cnt);

for(int i=cnt;i;i--) printf("

%d "

,all[i]);

return0;

}

view code

## $t3$

考試的時候沒有做出來,後來經過$g \color $神犇的指點,才知道用網路流做,開乙個超級源點$s$和乙個超級匯點$t$,然後將每個點拆成左部點和右部點,$s$向左部點連流量為$a[i]$的點,表示每個點至多能向其他點給出$a[i]$的能量,左部點向能到達的右部點連流量為$inf$的邊(注意要連自己),右部點向匯點連流量為$b[i]$的邊,表示最多收到$b[i]$的能量,然後跑乙個最大流,看所有右部點到匯點的邊是否滿流,不滿說明無解。再看每個左部點到所有右部點的反邊的流量即為答案。

#include#include

#include

#include

#include

#define czq namespace

using

czq std;

const

int maxn = 205

;const

int maxm = 2005

;const

int inf = 0x3f3f3f3f

;inline

intrd()

while(isdigit(ch))

return f?x:-x;

}int

n,m,head[maxn],to[maxm],val[maxm],nxt[maxm];

int cnt=1

,a[maxn],b[maxn],s,t,cur[maxn],d[maxn],ans[maxn][maxn];

queue

q;inline

void add(int bg,int ed,int

w)bool

bfs() }}

return

false;}

int dinic(int x,int

flow)

}return flow-res;

}int

main()

while(bfs())

for(register int i=head[t];i;i=nxt[i])

if(val[i^1])

puts(

"yes");

for(register int i=1;i<=n;i++)

for(register int j=head[i];j;j=nxt[j])

for(register int i=1;i<=n;i++)

return0;

}

view code

l洛谷 NOIP提高組模擬賽 Day2

傳送門 t1 區間修改 單點查詢。差分樹狀陣列。include include include using namespace std const int maxn 10000005 inline intrd while isdigit ch return f?x x void out int x ...

NOIP提高組模擬賽3

周圍大佬都說初中打過n遍,我乙個菜雞瑟瑟發抖。把斐波那契數列寫出來找了半天性質,用了半個多小時推出來 x兔子的父親,就是x減去是在斐波那契數列中最大的小於x的數 舉個栗子 13號兔子,應減去8,得到他的祖先5 10號兔子,應減去8,得到他的祖先2 預處理出斐波那契數列,然後讓ab中較大的到他的祖先,...

NOIP提高組模擬賽4

丹青千秋釀,一醉解愁腸 無悔少年枉,只願壯志狂 矩陣字首和加暴力 o n 2m 2 60pts有手就行 觀察資料範圍,猜測應該是求一種 o n 3 的演算法,想到之前做的題,應該是 n 2 枚舉行,n 處理乙個序列的答案,然後,就沒有然後了 對於乙個序列,求子段和為k的倍數,如何 o n 求解,考慮...