ICode9

精准搜索请尝试: 精确搜索
  • bzoj 2844: albus就是要第一个出场 线性基2020-01-20 09:04:19

    首先线性基是什么呢。我们考虑我们有n个数。子集数量为2^n个。我们将每个子集内的数全部异或起来。得到一个值。但是我们考虑这些值内会可能存在重复的,太多了。不便于运算。所以我们考虑,能不能除去重复的。 我们假定n个数都是<10^9。我们考虑使用一个30*30的矩阵。其中其中第一行,

  • BZOJ-2152 聪聪可可2020-01-17 17:03:17

    题面 Description 聪聪和可可是兄弟俩,他们俩经常为了一些琐事打起来,例如家中只剩下最后一根冰棍而两人都想吃、两个人都想玩儿电脑(可是他们家只有一台电脑)……遇到这种问题,一般情况下石头剪刀布就好了,可是他们已经玩儿腻了这种低智商的游戏。他们的爸爸快被他们的争吵烦死了,所以他

  • bzoj 46812020-01-11 14:01:21

    题目链接 题意 有一张边有权的无向图,现在要从1号点前往n号点,然后可以交换k次边权,问最短路最短是多少 数据范围 n≤50,m≤150,k≤20n\le 50,m\le 150,k\le 20n≤50,m≤150,k≤20 解法 最短路:考虑现在在一个点上,需要多计算的状态有什么:首先我们需要知道走到这个点上交换

  • BZOJ 2654: tree 二分+最小生成树2019-12-23 16:57:37

    code:  #include <cstdio> #include <algorithm> #define N 50020 #define ll long long #define setIO(s) freopen(s".in","r",stdin) using namespace std; struct data { int x,y,z; data(int a=0,int b=0,int c=0

  • BZOJ 3513 idiots2019-12-18 23:00:58

    题目传送门 分析: FFT一手统计两根棍子相加的方案 然后一个值2S可能会被同一根S自己乘自己得到 然后要减去 其次,A+B和B+A会被算成两种方案,所以还要除以2 然后不太好算合法的方案数,但是非法的很好算 直接减去小于S的所有方案数乘以长度为S的棍子数就好了。。 疯狂卡常2333 #includ

  • BZOJ 1011 [遥远的行星]2019-12-14 21:51:59

    题面 题意   给出序列 \(\{a_n\}\) 和 \(k\;(0.01 < k \le 0.35)\),求 \(s_i=\sum_{j=1}^{\lfloor k \cdot a_i \rfloor} \frac{a_i \cdot a_j}{i-j}\)。允许相对误差 \(\le 0.05\)。 题解   理论上,这道题无法在规定时间内求出精确解,但由于允许相对误差较大,可以考虑在损失一定

  • BZOJ 3691 游行2019-12-14 17:52:47

    题目传送门 分析: 没被访问的点要C费用,跑一次路要C费用 把这两个统一一下试试。。。 那就是每次不标记起点或者终点 那就是路径覆盖了2333 二分图,x 部 i 号点与 y 部 j 号点连 i 到 j 的最短路 然后每个点都会被访问到 但是有些的代价会大于C 那些就干脆不访问了吧2333 看看费用流

  • BZOJ 1009 GT考试2019-12-13 23:00:20

    题面 题意   给出长度为 \(m\) 的字符串 \(S\),求长度为 \(n\) 不包含 \(S\) 的字符串数量,对 \(k\) 取模。 题解   考虑用行向量 \(A\) 表示字符串匹配情况,\(A_i\) 表示当前匹配到第 \(i\) 位的字符串数量,那么每次新加一位都可以看作将 \(A\) 右乘一个 \(m \times m\) 的转移矩

  • BZOJ 1152 歌唱王国2019-12-13 20:57:38

    题目传送门 分析: 这道题很神仙,我们给出低配版解法和高配版解法2333   低配版:   首先知道这样一个公式。。。(证明去高配版) 当一个字符串S其中S [ 1 , i ] = S [ n - i + 1 , n ]时,则称S [ 1 , i ]为S的一个border Ans[n]=sigma( S [ 1, i ]为S的border) m ^ i 嗯。。。 有了这个

  • 递归型SPFA判负环 + 最优比例环 || [Usaco2007 Dec]奶牛的旅行 || BZOJ 1690 || Luogu P28682019-11-05 13:56:53

    题外话:最近差不多要退役,复赛打完就退役回去认真读文化课。 题面:P2868 [USACO07DEC]观光奶牛Sightseeing Cows 题解:最优比例环 题目实际是要求一个ans,使得对于图中任意一个环满足 sig(i=1,n)v[i]/sig(i=1,n)e[i]<=ans 所以将公式变换为:sig(i=1,n)v[i]-[(sig(i=1,n)v[i])*ans]<=0 s

  • bzoj 2563: 阿狸和桃子的游戏 贪心2019-10-29 18:56:07

    这个真的好巧妙啊~  如果只考虑点权的话显然直接按照权值大小排序即可.  但是加入了边权,就有了一个决策的问题.  于是,我们将边权分一半,分给两个端点.    如果一个人拿了两个端点,则边权都会加上.  否则,边权会抵消.    直接按照点权+一半边权排序即可.     code:  #inc

  • bzoj 4319: cerc2008 Suffix reconstruction 贪心2019-10-28 17:02:57

    如果字符集无限大的话直接按照 $sa$ 的顺序依次填即可.  由于字符集非常小,所以要尽量填相同的字符.    我们知道 $sa$ 数组,也就知道了 $rank$ 数组.    那么考虑添加排名为 $i$ 的字符:  如果 $rank[sa[i-1]+1]>rank[sa[i]+1]$,说明 $sa[i]$ 的字典序必须比 $sa[i-1]$ 的字典

  • BZOJ 2839: 集合计数 广义容斥2019-10-24 21:00:14

    code:  #include <bits/stdc++.h> #define N 1000005 #define LL long long using namespace std; const LL mod=1000000007; void setIO(string s) { string in=s+".in"; string out=s+".out"; freopen(in.c_str(),"r&

  • BZOJ-1907 树的路径覆盖 贪心2019-10-16 22:00:11

    题意:给一个n个点的树,求树的最小路径覆盖。(这个最小路径覆盖不能有重点) 解法:往图论方向想很久,想得太复杂了,其实直接贪心。这个大佬题解写得很好: https://blog.csdn.net/blue_cuso4/article/details/78079730   1 #include <bits/stdc++.h> 2 #define N 10005 3 using namespace

  • [BZOJ 2127] happiness2019-09-27 13:52:18

    题目大意 班级可视为 (n times m) 的矩阵,现进行文理分科。 位置 ([i, ; j]) 的人选文科会获得满意值 (art[i, ; j]),选理科会获得 (science[i, ; j])。 位置 ([i, ; j]) 的人及其下面的人均选择文科会额外获得满意值 (artColumn[i, ; j]),均选择理科会额外获得 (scienceColumn[i, ;

  • BZOJ 2431 [HAOI2009]逆序对数列 (dp)2019-09-19 17:00:24

    题意 问长度为n的1~n的排列,且逆序对为k的方案数有多少 \(n,k\leq 1000\) 思路 假设前\(1\)~\(i\)已经排列好,此时逆序对为\(k\),那么我们来讨论插入\(i+1\)时候的状态 \(i+1\)根据插入位置的不同,可以产生\(0\)到\(i\)个逆序对 根据这个特点我们设\(dp[i][j]\)为前\(i\)个数,逆序对为

  • BZOJ 4269: 再见Xor 线性基+贪心2019-09-17 16:01:44

    Code:  #include <bits/stdc++.h> #define ll long long #define M 33 #define setIO(s) freopen(s".in","r",stdin) using namespace std; int n,m; ll d[M*10]; void insert(ll x) { if(!x) return; for(int i=M;i>=0;--i) {

  • BZOJ 图的价值 (ntt,第二类斯特林数)2019-09-15 23:52:31

    Description “简单无向图”是指无重边、无自环的无向图(不一定连通)。 一个带标号的图的价值定义为每个点度数的k次方的和。 给定n和k,请计算所有n个点的带标号的简单无向图的价值之和。 因为答案很大,请对998244353取模输出。 Input 第一行包含两个正整数n,k(1<=n<=10^9,1<=k<=20

  • BZOJ 3251: 树上三角形2019-09-14 16:36:18

    题目 题解: 这是一个判定性问题。 >47>47>47个点就必定有解。可以通过较小两边之和<=第三边来证明。 然后就暴力往上跳存下来暴力判断就行了。 树剖AC Code: #include<bits/stdc++.h> #define maxn 400005 #define pb push_back #define lc u<<1 #define rc u<<1|1 #define

  • BZOJ 3529: [Sdoi2014]数表2019-09-13 15:57:06

    3529: [Sdoi2014]数表 思路: 莫比乌斯反演+整除分块+树状数组维护前缀和 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++.h> using namespace std; #define y1 y11 #define fi first #define se second #define pi acos(-1.

  • bzoj 4516(离线 + 在线查询每个前缀本质不同的子串个数,字符集无限)2019-09-13 15:07:04

    离线版本 #include <cstdio> #include <cstring> #include <iostream> #include <map> using namespace std; typedef long long LL; const int maxn = 100005; struct SAM{ int fa[maxn<<1], // 后缀链接 //ch[maxn<<1][ch_size],

  • BZOJ 1084 [SCOI2005]最大子矩阵2019-09-11 20:03:26

    Description   这里有一个n*m的矩阵,请你选出其中k个子矩阵,使得这个k个子矩阵分值之和最大。注意:选出的k个子矩阵不能相互重叠。 Input   第一行为n,m,k(1≤n≤100,1≤m≤2,1≤k≤10),接下来n行描述矩阵每行中的每个元素的分值(每个元素的分值的绝对值不超过32767)。 Output

  • BZOJ 1303 中位数图 题解2019-09-11 17:56:37

    题面 因为所求的是中位数,所以考虑改变原序列。把大于 b 的数全部变为 1,小于 b 的数变为 −1,等于 b 则为 0。问题就变为求存在几个包含 b的区间和为 0 。 根据乘法原理,我们枚举每一个l[i],求出l[i]*r[-i]后累加到ans上;   因为数组的下标不能是负数,所以把所有下标都加上100000; #in

  • BZOJ 3251 树上三角形2019-09-11 11:52:15

    题目链接:BZOJ 3251 Description 给定一大小为n的有点权树,每次询问一对点(u,v),问是否能在u到v的简单路径上取三个点权,以这三个权值为边 长构成一个三角形。同时还支持单点修改。 Input 第一行两个整数n、q表示树的点数和操作数 第二行n个整数表示n个点的点权 以下n-1行,每行2个整

  • bzoj 4869: [Shoi2017]相逢是问候2019-09-11 11:01:13

    Description Informatikverbindetdichundmich. 信息将你我连结。B君希望以维护一个长度为n的数组,这个数组的下标为从1到n的正整数。一共有m个操作,可以 分为两种:0 l r表示将第l个到第r个数(al,al+1,...,ar)中的每一个数ai替换为c^ai,即c的ai次方,其中c是 输入的一个常数,也就是执行赋值

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有