首页 > TAG信息列表 > ZJOI2009

【做题记录】 ZJOI2009 假期的宿舍

\(\text{ZJOI2009}\) 假期的宿舍 算法:二分图匹配、最大流 题目: 有一些人,在一个学校内上学。放假了,他们可能会在学校,也可能不在,这时他们的朋友会来看他们。每个人只能在他们认识的人的床上睡觉,问是否存在一个方案,使得不回家的学生和来看他们的朋友都有床睡。 \(T\) 组数据。

P2055 [ZJOI2009]假期的宿舍

[ZJOI2009]假期的宿舍 题目描述 学校放假了……有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题。 比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识。我们假设每个人只能睡和自己直接认识的人的床。那么一个解决方案就是 B 睡 A 的床而 C 睡 B

BZOJ1432: [ZJOI2009]Function(找规律)

Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 1523  Solved: 1128[Submit][Status][Discuss] Description 有n个连续函数fi(x),其中1≤i≤n。对于任何两个函数fi(x)和fj(x),(i!=j),恰好存在一个x使得fi(x)=fj(x), 并且存在无穷多的x使得fi(x)<fj(x)。对于任何i;j;k,满足1

[ZJOI2009] 硬币游戏

一、题目 点此看题 二、解法 看到这种多次操作的题一定要往倍增方面想。 矩阵加速显然是可以的,就是有点慢,但是在部分情况下多项式能代替矩阵加速的功能,不难构造下列的多项式,我们只需要求初始数组和它在模 \(x^{2n}\) 意义下的循环卷积即可: \[(x+x^{2n-1})^T \]暴力跑是 \(O(n\log

[ZJOI2009] 假期的宿舍 - 最大流

[ZJOI2009] 假期的宿舍 Description 每个人只能睡和自己直接认识的人的床,有 \(n\) 个人,每个人可能是在校学生或者不是,可能回家也可能不回,判断是否存在一个方案使得不回家的在校学生和非本校学生都有地方住。 Solution 二分图匹配,人 \(i\) 和人 \(j\) 如果认识,那么人 \(i\) 就和床

P2598 [ZJOI2009]狼和羊的故事

既可以是一眼题又可以是有些东西的题 一眼就可以看出来,要用最小割把狼和羊分开,那 \(S\) 向狼连 \(inf\),羊向 \(T\) 连 \(inf\),每个点向周围连 1,考虑割掉的边是栅栏 之所以说它有些东西,是应为它可以表示成数学形式,考虑将狼划分成 0 集合,将羊划分成 1 集合,没有归属的点随便 如果两个

洛谷P2055 [ZJOI2009]假期的宿舍 二分图 匈牙利算法

题目链接:https://www.luogu.com.cn/problem/P2055 本题可以用二分图匹配很好的解决,我们这里是人找床,如果两个人 A 和 B 认识,并且 B 是学校里的学生,那么 A 就可以睡 B 的床,当然 A 也可以睡自己的床。之后用匈牙利算法,找二分图匹配即可。 代码如下 #include <bits/stdc++.h>

BZOJ 1413. [ZJOI2009]取石子游戏

  用dp来解决博弈问题这是第一次做,之前遇到一个博弈dp的题还没补。。设 $L_{i,j},R_{i,j}$ 分别表示在区间 $[i,j]$ 左右放上多少石子能让先手必败。首先这个 $L,R$ 肯定是唯一的,假设不唯一,即存在 $L_1,L_2$ 加在当前区间左端能使先手必败,设 $L_1>L_2$,那么先手把 $L_1$ 取得和 $L

【最大流,dinic】P2055 [ZJOI2009]假期的宿舍

1 #include<iostream> 2 #include<queue> 3 #include<cstring> 4 using namespace std; 5 6 const int maxn = 60; 7 8 const int INF = 0x3f3f3f3f; 9 int n; 10 int head[maxn << 2 | 1]; 11 int cnt; 12 int d[maxn <&l

P2055 [ZJOI2009]假期的宿舍(二分图匹配)

满分做法: 把人向床连边进行二分图匹配即可。 #include<cstring> #include<algorithm> #include<cmath> #include<iostream> #include<cstdio> #include<queue> using namespace std; typedef long long ll; const int maxm=5555; int t,n,ans; int school[ma

P2055 [ZJOI2009]假期的宿舍(二分图)

这题坑人的是题意,看了题解才搞明白 有一群学生和朋友,朋友会去看某些学生,互相认识的人之间可以互睡床位,问你能不能使得所有人都有床睡觉 人向床连边,如果是在校学生且不回家就向自己连一条边 然后统计非在校学生和在校学生且不回家的人数,最大匹配大于这个人数即OK 然后是多组记得清

BZOJ1413 [ZJOI2009]取石子游戏

[ZJOI2009]取石子游戏 思路: 博弈+dp,详见yyb博客 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++.h> using namespace std; #define y1 y11 #define fi first #define se second #define pi acos(-1.0) #define LL long long

Luogu P2055 [ZJOI2009]假期的宿舍

这个建图真玄.jpg 简直是常识题 然而我常识不足QwQ 话说题解里的代码在我看来不美观所以抄不了题解 于是debug一个小时QwQ 给萌新一点活路吧 #include<cstdio> #include<cstring> #include<vector> using namespace std; int t,n,in[55],back[55],head[55],vis[55],match[55],cnt

BZOJ 1413: [ZJOI2009]取石子游戏 博弈+Dp

title BZOJ 1413 Description 在研究过Nim游戏及各种变种之后,Orez又发现了一种全新的取石子游戏,这个游戏是这样的: 有n堆石子,将这n堆石子摆成一排。游戏由两个人进行,两人轮流操作,每次操作者都可以从最左或最右的一堆中取出若干颗石子,可以将那一堆全部取掉,但不能不取,不能操

P2598 [ZJOI2009]狼和羊的故事 最小割

   题目描述 “狼爱上羊啊爱的疯狂,谁让他们真爱了一场;狼爱上羊啊并不荒唐,他们说有爱就有方向......” Orez听到这首歌,心想:狼和羊如此和谐,为什么不尝试羊狼合养呢?说干就干! Orez的羊狼圈可以看作一个n*m个矩阵格子,这个矩阵的边缘已经装上了篱笆。可是Drake很快发现狼再怎么也是狼,它们总是

「ZJOI2009」多米诺骨牌

「ZJOI2009」多米诺骨牌 要求满足任何相邻两行之间都有至少一个 骨牌横跨,任何相邻两列之间也都至少有一个骨牌横跨。 枚举有哪些列之间是没有骨牌横跨的,算出该情况下合法的方案数,容斥。 确定了哪些列是没有骨牌横跨的,列就被划分成了几个区间。 计算前\(i\)个区间的 任意两行之间有

P2055 [ZJOI2009]假期的宿舍 二分图匹配

   题目描述 学校放假了 · · · · · · 有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题。 比如 A 和 B 都是学校的学生,A 要回家,而 C 来看B,C 与 A 不认识。我们假设每个人只能睡和自己直接认识的人的床。那么一个解决方案就是 B 睡 A 的床而 C 睡 B 的

1433: [ZJOI2009]假期的宿舍

题目   Description   学校放假了······有些同学回家了,而有些同学则有以前的好朋友来探访,那么住宿就是一个问题。比如A 和B都是学校的学生,A要回家,而C来看B,C与A不认识。我们假设每个人只能睡和自己直接认识的人的床。那么一 个解决方案就是B睡A的床而C睡B的床。而实际情况

题解 【ZJOI2009】 假期的宿舍

题面   解析 这其实就是个二分图匹配的水题(虽然我还是爆零了) 这题的意思就是说,有x个人,y张床(x,y不确定), 每个人只能睡在指定的几张床上, 问能否使每人都有床睡。 所以,直接二分图匹配,看最大匹配是否大于行了啊啊!(当然,用网络流也可以。) 然而,却出现了一些玄学错误(导致本次考试全体爆零)。