
思维
Zhayan9QvQ
嘿嘿嘿
展开
-
【Bzoj1008】越狱
[HNOI2008]越狱题目描述监狱有连续编号为1...N的N个房间,每个房间关押一个犯人,有M种宗教,每个犯人可能信仰其中一种。如果相邻房间的犯人的宗教相同,就可能发生越狱,求有多少种状态可能发生越狱输入输出格式输入格式:输入两个整数M,N.1输出格式:可能越狱的状态数,模100003取余原创 2017-02-07 14:45:52 · 396 阅读 · 0 评论 -
【Bzoj4653】区间
题意在数轴上有 n个闭区间 [l1,r1],[l2,r2],…,[ln,rn]。现在要从中选出 m 个区间,使得这 m个区间共同包含至少一个位置。对于一个合法的选取方案,它的花费为被选中的最长区间长度减去被选中的最短区间长度。区间 [li,ri] 的长度定义为 ri−li,即等于它的右端点的值减去左端点的值。求所有合法方案中最小的花费。如果不存在合法的方案,输出 −1。解析我们用一棵线段树来保存点的原创 2017-05-01 15:36:33 · 617 阅读 · 0 评论 -
【Bzoj2654】tree
题意给你一个无向带权连通图,每条边是黑色或白色。让你求一棵最小权的恰好有need条白色边的生成树。 题目保证有解。解析这题直接考虑白边不好做,不过我们可以给白边加上一个值x,而x越大,选取的白边就越少,x越小,选取的白边就越多。所以可以二分x,找到符合条件的解。#include <cstdio>#include <algorithm>#define Rep( i , _begin , _end原创 2017-04-01 22:00:14 · 499 阅读 · 0 评论 -
【Bzoj2151】种树
题意A城市有一个巨大的圆形广场,为了绿化环境和净化空气,市政府决定沿圆形广场外圈种一圈树。园林部门得到指令后,初步规划出n个种树的位置,顺时针编号1到n。并且每个位置都有一个美观度Ai,如果在这里种树就可以得到这Ai的美观度。但由于A城市土壤肥力欠佳,两棵树决不能种在相邻的位置(i号位置和i+1号位置叫相邻位置。值得注意的是1号和n号也算相邻位置!)。最终市政府给园林部门提供了m棵树苗并要求全部种上原创 2017-04-01 10:55:40 · 694 阅读 · 0 评论 -
【Bzoj1800】飞行棋
题目大意:n段圆弧,求有多少个矩形题解:统计直径就行了,可以采用前缀和,然后答案就是C(x,2)。不过统计直径的时候可能会出现一种情况,比如1,2,3和4,5,6是两段等于半圆的弧,而它们所对的半径是同一条,所以说统计时会有重复,对于这种情况的解决,直接少算一条边就好,比如第一条边不要,然后统计其它的半圆,就能得出答案。#include #include using原创 2017-03-18 21:35:09 · 479 阅读 · 0 评论 -
【Bzoj3083】遥远的国度
题意给定一棵有根树,支持3种操作: 1.把首都修改为id; 2.将p1 p2路径上的所有城市的防御值修改为v; 3.询问以城市id为根的子树中的最小防御值。分析画了一堆图之后终于搞懂了一点点,首先换根的话肯定不是真的换。对于每次询问,设现在的根为root,准备询问的结点为x。来考虑几种情况。 1.root == x ,询问整棵树,直接输出全集。 2.root不为x的子树,则直接考虑x的整棵原创 2017-03-17 22:39:45 · 447 阅读 · 0 评论 -
【Bzoj2957】楼房重建
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。 为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)原创 2017-03-05 13:26:18 · 461 阅读 · 0 评论 -
【Bzoj3884】上帝与集合的正确用法
题目大意求2222222...mod p的值。求2^{2^{2^{2^{2^{2^{2^{...}}}}}}}mod p的值。分析po姐的题目诶!!po姐的题目诶!! 大意就是上面那样,看上去+∞个2根本不可做,不过有欧拉定理xa≡xa mod φ(p)+φ(p) (mod p)。大意就是上面那样,看上去+∞个2根本不可做,不过有欧拉定理x^a≡x^{a mod φ(p)+φ(p)} (mod p原创 2017-03-04 16:43:50 · 464 阅读 · 0 评论 -
【Bzoj1053】反素数ant
定理:一个数约数个数=所有素因子的次数+1的乘积然后得一个2000000000以内的数字不会有超过12个素因子在一个因子数为n的集合中,这个集合中最小的数就是一个反质数。所以我们只要找出小于n的数中因数个数最多的最小数。#include #include using namespace std;typedef long long LL;const LL原创 2017-03-17 20:49:07 · 395 阅读 · 0 评论 -
【Bzoj1192】鬼谷子的钱袋
1192: [HNOI2006]鬼谷子的钱袋Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3312 Solved: 2412[Submit][Status][Discuss]Description鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政。有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大原创 2017-02-07 19:55:17 · 341 阅读 · 0 评论 -
【Bzoj2748】音量调节
2748: [HAOI2012]音量调节Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 1732 Solved: 1088[Submit][Status][Discuss]Description一个吉他手准备参加一场演出。他不喜欢在演出时始终使用同一个音量,所以他决定每一首歌之前他都要改变一次音量。在演出开始之前,他已经做好了原创 2017-02-07 19:08:51 · 453 阅读 · 0 评论 -
【Bzoj1303】中位数图
题意给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。解析因为数都是不重复的,所以可以把左边小于它的记为+1,大于的记为-1,统计前缀和f。同理,右边大于的记为1,小于的记为-1,统计前缀和g,那么,如果左边某个数出现某次数的方法种数等于右边的,就根据乘法原理统计答案,特别地,f[0]=g[0]=1。数组下标要做一点处理。#原创 2017-06-10 08:39:37 · 987 阅读 · 0 评论