首页 > TAG信息列表 > HNOI2006
【P2323 [HNOI2006]公路修建问题】题解
题目链接 题外话: 一道纯最小生成树的题,能出道蓝我也真服了... 本文默认使用kruskal算法,主要是因为另一种我不会 首先我们先满足 \(k\) 条一级道路,对所有道路按一级道路造价排序,然后用最小生成树的做法选出 \(k\) 条边。 对于剩下的道路按二级造价排序,然后同理继续选即可。 时间复【Luogu P2323】[HNOI2006]公路修建问题
[HNOI2006]公路修建问题: 题目大意: 思路: 由于 \(c2\leq c1\),那我们只连 \(k\) 条一级边,其余都是二级。两遍生成树即可。 代码: const int N = 1e4 + 10; inline ll Read() { ll x = 0, f = 1; char c = getchar(); while (c != '-' && (c < '0' || c > '9'BZOJ 1192 [HNOI2006] 鬼谷子的钱袋 (整数拆分)
Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一件宝物引起了他极大的兴趣,那就是无字天书。但是,他的行程安排得很满,他他已经买好了去邯郸的长[HNOI2006]最短母串 (AC自动机+状压)
拿这题练了练数组版的AC自动机 数据范围显然状压 插入时预处理出每个节点是哪个串的结束节点 然后建图 连fail指针的时候合并状态 为了最短显然需要按层转移,所以bfs 可以保证一达到末状态就return得到最优解 #include<queue>#include<cstdio>#include<iostream>#include<cstring>#bzoj 1192: [HNOI2006]鬼谷子的钱袋 思维_二进制
十分巧妙的一道题. 考虑当前凑出$[1,i/2)$,那么再有一个 $i/2$,就可以凑出 [i/2+1,i). 注意,这里的 $i$ 都是 2 的 $k$ 次幂. 于是,我们只要找到 $i$ 使得 2 的 $i$ 次幂刚好大于 $m$ 即可. Code: #include<bits/stdc++.h>using namespace std;int main(){ long long n,k=2; ciBZOJ1192: [HNOI2006]鬼谷子的钱袋
题目大意:给一个数字m,将其分为最少的组,使任意组合可以得到小于等于m的所有数。 题解: 这题非常的简单,几乎是秒出结论。 考虑将1-m间的每个数进行二进制分解,那么最少的组数就是m的二进制的位数。 这个结论十分显然。 如果觉得不显然或不相信的可以手算几组。。。 代码: #include<cstdi[HNOI2006]最短母串问题 (ac
Description 给定n个字符串(S1,S2,„,Sn),要求找到一个最短的字符串T,使得这n个字符串(S1,S2,„,Sn)都是T的子串。 Input 第一行是一个正整数n(n<=12),表示给定的字符串的个数。 以下的n行,每行有一个全由大写字母组成的字符串。每个字符串的长度不超过50. Output 只有一行,为找到的bzoj 1197: [HNOI2006]花仙子的魔法
地推 /************************************************************** Problem: 1197 User: lxy8584099 Language: C++ Result: Accepted Time:0 ms Memory:824 kb***************************************************************bzoj 1191: [HNOI2006]超级英雄Hero
简单二分图 /************************************************************** Problem: 1191 User: lxy8584099 Language: C++ Result: Accepted Time:24 ms Memory:852 kb***************************************************