首页 > TAG信息列表 > HNOI2009
lgP4727 [HNOI2009]图的同构计数
#include<bits/stdc++.h> #define MAXN 65 typedef long long ll; using namespace std; int n,m; int mod; int jc[MAXN],inv[MAXN],ans,inv2[MAXN]; int gcd(int a , int b){ if(!b)return a; return gcd(b , a % b); } int poww(int x , int y){ int zz = 1; wP3200 [HNOI2009]有趣的数列
题目描述 P3200 [HNOI2009]有趣的数列 样例输入:3 10 样例输出:5 题解 看样例猜做法 大概猜一猜 观察到答案是卡特兰数列 接下来我们看看为什么是这样。 首先化简题目 对于一个 \(2*n\) 的排列,我们要求: 奇数位置上的数递增 偶数位置上的数递增 奇偶相邻位置数递增 奇怪的tip:偶奇相邻#结论#洛谷 3199 [HNOI2009]最小圈
题目 求有向图最小平均权值回路。 \(n\leq 3*10^3,m\leq 10^4\) 分析 设 \(f_k(x)\) 表示从点 \(x\) 出发恰好走 \(k\) 条边的最短路, 那么答案就是 \(\min_{x=1}^n\max_{k=0}^{n-1}\frac{f_n(x)-f_k(x)}{n-k}\) 所以直接 \(O(nm)\) 就可以了,证明见_rqy dalao的博客 0/1分数规划的HNOI2009 梦幻布丁
题目描述 「 题目链接 」 \(N\) 个数摆成一行, \(M\) 次操作。每次将某个数字全部变成另一个数字,再询问当前一共有多少段数字。例如颜色分别为 \(1,2,2,1\) 的四数有 \(3\) 段。【BZOJ1483】【HNOI2009】梦幻布丁
题意 N 个布丁摆成一行,进行M次操作.每次将某个颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段颜色.例如颜色分别为1,2,2,1的四个布丁一共有3段颜色. 题解 注意可能出现把a改成b后再改回来的情况 首先一个最简单的暴力就是每个颜色用一个vector保存位置,修改时把所有Luogu P3200 [HNOI2009]有趣的数列
题目描述 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}; (2)所有的奇数项满足a1<a3<...<a2n-1,所有的偶数项满足a2<a4<...<a2n; (3)任意相邻的两项a2i-1与a2i(1<=i<=n)满足奇数项小于偶数项,即:a2i-1<a2i。 现在的任务是:对P3200 [HNOI2009]有趣的数列
题目:P3200 [HNOI2009]有趣的数列 思路: 打表可以发现是裸的Catalan数,简单证明一下: 假设现在有两个vector s1、s2,s1依次存奇数位的数,s2存偶数位的数。 例如:s1里存的是1,2,5;s2里存的是3,4,6;表示的就是数列1,3,2,4,5,6。 根据题目要求,s1、s2都是递增的,并且最后s1、s2各存n个数。所以我[HNOI2009]最小圈 分数规划 spfa判负环
[HNOI2009]最小圈 分数规划 spfa判负环 题面 思路难,代码简单。 题目求圈上最小平均值,问题可看为一个0/1规划问题,每个边有\(a[i],b[i]\)两个属性,\(a[i]=w(u,v),b[i]=1\),问题转化为\(min(\frac{\sum^{k}_{i=1}a[i]}{\sum^{k}_{j=1}b[j]})\) 分数规划考虑二分答案,当前\(mid\)可能为答HNOI2009 最小圈
传送门 省选之前再水一发 当做01分数规划+spfa判负环的板子题。二分答案mid,之后每条边边权-mid,在上边判是否有负环即可。 这里没有使用入队n次的spfa判负环,用的是基于dfs的SPFA……我也不知道哪个更好其实…… #include<bits/stdc++.h> #define rep(i,a,n) for(int i = a;i <= n;i+P3199 [HNOI2009]最小圈 01分数规划
裸题,第二个权值是自己点的个数。二分之后用spfa判负环就行了。 题目描述考虑带权的有向图G=(V,E)G=(V,E)G=(V,E)以及w:E→Rw:E\rightarrow Rw:E→R,每条边e=(i,j)(i≠j,i∈V,j∈V)e=(i,j)(i\neq j,i\in V,j\in V)e=(i,j)(i≠j,i∈V,j∈V)的权值定义为wi,jw_{i,j}wi,j,令n=∣V∣n=[HNOI2009]梦幻布丁
Problem 题目传送门 n个布丁摆成一行,进行m次操作.每次将某种颜色的布丁全部变成另一种颜色的,然后再询问当前一共有多少段连续的颜色. \(n , m< 10^5, a_i, x, y <10^6\) solution 一种颜色的布丁变成另一种颜色就相当于合并两种颜色的布丁。 并且两种布丁合并了之后显然不可能分[HNOI2009]最小圈
传送门 题意:在带权有向图中,求图中所有环的平均值的最小值(环的平均值即构成环的所有边的边权的平均值). 分析:理解题意,我们要求的实际上就是\(\frac{\sum_{i=1}^k{c_i}}{k}\) 令\(x=\frac{\sum_{i=1}^k{c_i}}{k}\) 整理得\(\sum_{i=1}^k{c_i}-k*x=0\) 继续得\(\sum_{i=1}^k(c_i-