NOIP 2015 疫情控制

2021-08-09 16:39:10 字數 1567 閱讀 6685

評測傳送

二分答案+貪心。

越往上越優,所以在列舉的範圍內,能往上就往上。

細節處理很重要。

我的**有一處是待優化的,調了一下午,身心俱疲,不想再寫了。

就這樣吧 95分。

#include

#include

#include

#include

#include

#include

#define ll long long

using namespace std;

const int n=50009;

int n,m;

int head[n],nxt[2

*n],to[2

*n],w[2

*n],tot;

ll dis[n][20],dep[n],maxn;

int f[n][20];

int vis[n],leaf,siz[n],used[n];

int qe[n],num[n],r;

struct hq[n];

h qq[n];

bool cmp1(h a,h b)

void add(int

x,int

y,int z)

void dfs(int

x) }

}void dfs_check(int father,intx);

for(int i=head[x];i;i=nxt[i])

}bool check(ll len)

if(f[x][0]==1&&dis[x][0]for(int j=1;j<=num[qe[i]];j++) q[++n1]=((h));

else

vis[x]=1;

}sort(q+1,q+n1+1,cmp1);

for(int i=head[1];i;i=nxt[i]); }

sort(qq+1,qq+n2+1,cmp1);

if(n1return

0; int i,j,flag=0;

for(i=1;i<=n2;i++)

}for(int i=1;i<=n2;i++)

if(!vis[qq[i].x]) return

0; return1;}

int main()

tot=0;

dfs(1);

for(int j=1;(1

if(f[f[i][j-1]][j-1])

scanf("%d",&m);

for(int

x,i=1;i<=m;i++)

for(int i=1;i<=n;i++) if(num[i]) qe[++r]=i;

ll l=0,r=(n+5)*(

1e9),mid;maxn=r;

while(l<=r)

if(lprintf("%lld\n",l);

else

printf("-1\n");

//cout

<9);

return

0;}

NOIP 2015 簡要題解

最終還是打了個漂亮的醬油 day 1 t1 神奇的幻方 送分模擬題,但是遇到了乙個非常流弊的學弟 以上純屬娛樂 割 t2 資訊傳遞 大意 在乙個只有n條有向邊的圖中,每個結點出度為1,求乙個包含節點數最少的環。分析 因為只有n條邊並且每個點都有且僅有一條邊連出去,所以只可能存在簡單環,不會出現那種8...

NOIP2015解題報告

day1.當時的zxn很弱,弱到連dfs都調不明白就開始去noip。現在他會了dfs,二分答案,求lca,bfs,拓撲排序。所以他回去填noip2015的題解坑。t1.我現在依然不知道除了這種尾遞迴式的寫法之外還有啥別的寫法 偽 void dfs int i,int j,int x 咳我好像現在明白...

NOIP 2015 資訊傳遞

題目描述 有n個同學 編號為1到n 正在玩乙個資訊傳遞的遊戲。在遊戲裡每人都有乙個固定的資訊傳遞物件,其中,編號為i的同學的資訊傳遞物件是編號為ti同學。遊戲開始時,每人都只知道自己的生日。之後每一輪中,所有人會同時將自己當前所知的生日資訊告訴各自的資訊傳遞物件 注意 可能有人可以從若干人那裡獲取資...