首页 > 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; ci

BZOJ1192: [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***************************************************