首页 > TAG信息列表 > POI2004
POI2004 选做
POI2004 Bzoj2066 Gra 简要题意: 长度为 \(m\) 的整数数轴上有 \(n\) 个坐标不同的棋子,保证棋子初始时不在 \(m\),两人轮流移动,每次将一个棋子移动到右边第一个空位置上,将棋子移动到 \(m\) 的人胜利,问先手必胜时第一步有多少种移动方法。 数据规模: \(n \le 10^6,\,m \le 10^9\)。[POI2004]旅行问题
题面传送门 看到环,就先想到断环为链。 对于逆时针,可以当做倒过来的顺时针。 接下来对于一个长度为\(2n\)的链,我们记\(sp[i],sd[i]\)分别表示\(p[i],d[i]\)的前缀和。 以顺时针为例,如果从一个地方出发不能环游一周,一定存在一个\(j\in[i+1,i+n-1]\),使得\(sp[j] - sp[i]< sd[j] - sdP5911 [POI2004]PRZ (状态压缩dp+枚举子集)
题目背景 一只队伍在爬山时碰到了雪崩,他们在逃跑时遇到了一座桥,他们要尽快的过桥。 题目描述 桥已经很旧了, 所以它不能承受太重的东西。任何时候队伍在桥上的人都不能超过一定的限制。 所以这只队伍过桥时只能分批过,当一组全部过去时,下一组才能接着过。队伍里每个人过桥都需要特[POI2004]PRZ
怎么全是 模拟退火 啊,这明明是个 枚举子集 的板子题。 考虑 \(n \leq 16\) 二进制没错了。。 \(dt_i\) 表示 \(i\) 这个状态下 \(\max{t_j}\),\([\texttt{i\&(1<<j)}]\) \(dw_i\) 表示 \(i\) 这个状态下 \(\sum w_j\),\([\texttt{i&(1<<j)}]\) \(dp_i\) 表示 \(i\) 这个状态下的最bzoj2067: [Poi2004]SZN
bzoj2067: [Poi2004]SZN 一开始没看出来是贪心,还以为是树规,多亏ooo提醒一句,然后刚了一个半小时搞出来了。 首先‘最长线最短’二分没错了,想了想他确实是单调的,最长线越长,用的线就越短(注意这里的最长线只是不超过,并不是一定要达到)。 二分最长线长度,对于已知的最长线长度len,考虑如何BZOJ [POI2004]PRZ 状压DP_二进制_骚操作
二进制就是比谁更sao... Code: #include <bits/stdc++.h>#define setIO(s) freopen(s".in","r",stdin) using namespace std;int maxv[1 << 17], sumv[1 << 17], t[1000], w[1000], v[500000], f[1 << 17]; int W, n, tot; int main(){[bzoj2069][POI2004]ZAW
BZOJ2069 描述 在Byte山的山脚下有一个洞穴入口. 这个洞穴由复杂的洞室经过隧道连接构成. 洞穴的入口是一条笔直通向“前面洞口”的道路. 隧道互相都不交叉(他们只在洞室相遇). 两个洞室要么就通过隧道连接起来,要么就经过若干隧道间接的相连. 现在决定组织办一个'King's of Byteot[BZOJ]2068: [Poi2004]SZP
题解: 根据题目的特殊性 我们考虑基环树 对于非树边uv我们对深度较高的点分情况讨论 取或者不取 然后做个树dp就行了 #include <algorithm>#include <iostream>#include <cstring>#include <cstdio>#include <vector>#include <stack>#include <queue>#include <cmath>#incl