ICode9

精准搜索请尝试: 精确搜索
  • BZOJ 4488: [Jsoi2015]最大公约数2019-07-27 22:52:48

    4488: [Jsoi2015]最大公约数 思路:容易发现以某个位置\(i\)为结尾所有后缀的\(gcd\)个数不超过\(log(a[i])\)。 (怎么发现?将数写成质因子幂次乘积的形式,然后\(gcd\)每次减小一个质因子,最多减少\(log\)次)然后就可以用\(map\)维护每个\(gcd\)的最左端端点。 代码: #pragma GCC optimize(

  • BZOJ 3884 上帝与集合的正确用法(欧拉广义降幂)2019-07-19 22:36:52

    题目 样例数T<=1e3,需取模的p<=1e7 思路来源 https://blog.csdn.net/tianyizhicheng/article/details/81698600 题解 很巧妙,记原式结果为g,由于2的个数是无限的,所以 开一个函数f(d)来实现求g mod(d)功能, 那么要求g mod(d)就得求g mod(phi[d]),递归求f(phi[d]) 注意到递归到d==1

  • [BZOJ 2653] middle(可持久化线段树+二分答案)2019-07-14 20:07:12

    [BZOJ 2653] middle(可持久化线段树+二分答案) 题面 一个长度为n的序列a,设其排过序之后为b,其中位数定义为b[n/2],其中a,b从0开始标号,除法取下整。   给你一个长度为n的序列s。   回答Q个这样的询问:s的左端点在[a,b]之间,右端点在[c,d]之间的子序列中,最大的中位数。   其中a<b

  • BZOJ - 3262 陌上花开2019-07-14 16:53:31

    3262: 陌上花开 Time Limit: 20 Sec  Memory Limit: 256 MBSubmit: 5433  Solved: 2623[Submit][Status][Discuss] Description 有n朵花,每朵花有三个属性:花形(s)、颜色(c)、气味(m),用三个整数表示。 现在要对每朵花评级,一朵花的级别是它拥有的美丽能超过的花的数量。

  • bzoj 39242019-07-09 21:03:43

    动态点分治好题 首先我们考虑一个暴力做法: 每次修改之后选一个点作为根搜索整棵树,然后换根dp即可 考虑每次换根时,移向的点的消耗会减少子树代价之和*边权,而其余部分代价会增加剩余代价*边权 这样每次换根都是$O(1)$的,总时间复杂度$O(nm)$,可以通过...20分! 贴代码: #include <cstdio>

  • [最小割] Bzoj P1391 order2019-07-09 15:02:02

    Description 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成。 现在给出这些参数,求最大利润 Input 第一行给出 N,M(1<=N<=1200,1<=M<=1200) 下面将有N块数据,每块数据第一行给出完成这个任务能赚到

  • bzoj 41762019-07-08 12:04:21

    题意:求$\sum_{i=1}^{n}\sum_{j=1}^{n}d(ij)$ 首先推一发式子: $\sum_{i=1}^{n}\sum_{j=1}^{n}d(ij)$ 有一个结论:$d(nm)=\sum_{i|n}\sum_{j|m}[gcd(i,j)\equiv 1]$ 然后代入,得: $\sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{p|i}\sum_{q|j}[gcd(p,q)\equiv 1]$ 然后优先枚举$p$,$q$,得到: $\sum_

  • bzoj 1293 生日礼物2019-07-06 15:50:52

      小西有一条很长的彩带,彩带上挂着各式各样的彩珠。已知彩珠有N个,分为K种。简单的说,可以将彩带考虑为x轴,每一个彩珠有一个对应的坐标(即位置)。某些坐标上可以没有彩珠,但多个彩珠也可以出现在同一个位置上。 小布生日快到了,于是小西打算剪一段彩带送给小布。为了让礼物彩带足够漂

  • BZOJ 1096: [ZJOI2007]仓库建设 动态规划 + 斜率优化2019-07-05 15:02:03

    Code:  #include<bits/stdc++.h>#define setIO(s) freopen(s".in","r",stdin) #define maxn 1000004#define x(i) (a[i]) #define y(i) (f[i]+b[i]) #define ll long long using namespace std; ll dis[maxn],p[maxn],cost[maxn],a[maxn],b[

  • @bzoj - 3270@ 博物馆2019-07-05 10:03:42

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 有一天Petya和他的朋友Vasya在进行他们众多旅行中的一次旅行,他们决定去参观一座城堡博物馆。 这座博物馆有着特别的样式。它包含由m条走廊连接的n间房间,并且满足可以从任何一间房间到任何一间别的房

  • [虚树][树形dp] Bzoj P2286 消耗战2019-07-05 10:02:00

    Description 在一场战争中,战场由n个岛屿和n-1个桥梁组成,保证每两个岛屿间有且仅有一条路径可达。现在,我军已经侦查到敌军的总部在编号为1的岛屿,而且他们已经没有足够多的能源维系战斗,我军胜利在望。已知在其他k个岛屿上有丰富能源,为了防止敌军获取能源,我军的任务是炸毁一些桥梁,使

  • bzoj 55122019-07-03 18:50:32

    后缀自动机基本应用 对询问串建起后缀自动机,然后建起parent树,做一次子树统计就知道了每个节点代表的字符串出现次数 接下来我们只考虑出现次数等于$k$的那些点,对于任意一个点$p$我们知道他代表的子串长度是连续的,长度范围在$[len_{fa}+1,len_{p}]$之间,那么我们做个差分,最后统计一次

  • BZOJ 2839: 集合计数2019-07-03 15:54:17

       题概: 题目描述 一个有N个元素的集合有2^N个不同子集(包含空集),现在要 在这2^N个集合中取出若干集合(至少一个),使得它们的交集 的元素个数为K,求取法的方案数,答案模1000000007。(是质数喔~) 输入格式 一行两个整数N,K 输出格式 一行为答案。 样例 样例输

  • BZOJ 2729: [HNOI2012]排队 排列组合 + 高精度2019-07-02 18:50:09

    Code:  #include<bits/stdc++.h> #define maxn 10003 #define ll long long #define p 10000000000llusing namespace std;ll base[maxn];int n,m,len=1; void multiply(int x){ ll pre=0,tmp; for(int i=1;i<=len;i++) { tmp=base[i

  • [BZOJ 3444]最后的晚餐2019-07-02 16:52:18

    Description 题库链接 给 \(n\) 个人排位置。有 \(m\) 个约束关系,约束关系形同 \((u,v)\) 表示第 \(u\) 个人要与第 \(v\) 个人相邻。问共有多少种安排方法。 \(0<n\leq 500000,m\leq n\) Solution 康复训练 \(\times 2\)。 首先我们可以将约束关系变成边。讨论不合法的情况: 边相连

  • bzoj 47122019-07-02 09:04:08

    首先是动态dp了嘛... 然后考虑怎么做:首先列出dp方程,大概长这样: $f[i]=min(v[i],\sum f[to])$ 看着不太像动态dp呀... 考虑拿出重儿子的贡献,然后套模型,大概能构造出一个这样的东西: 设$g_{i}=\sum f_{to}[to!=son]$ $\begin{pmatrix} f_{i}\\0 \end{pmatrix}$ = $\begin{pmatrix} g_{

  • [BZOJ 2120]带修主席树 数颜色2019-06-30 17:00:06

    B. 数颜色 题目描述 墨墨购买了一套N支彩色画笔(其中有些颜色可能相同),摆成一排,你需要回答墨墨的提问。墨墨会像你发布如下指令:1、 Q L R代表询问你从第L支画笔到第R支画笔中共有几种不同颜色的画笔。2、 R P Col 把第P支画笔替换为颜色Col。为了满足墨墨的要求,你知道你需要

  • BZOJ 4238 电压 解题报告2019-06-26 16:39:32

    BZOJ 4238 电压 考虑一条边成为答案以后,删去Ta后剩下的图是一个或很多个二分图,即没有奇环 则一条边可以成为答案,当且仅当自己在所有奇环的交上且不在偶环上。 考虑建出dfs树,那么返祖边一定在环上。 把边下放到点上,考虑处理出返祖边覆盖的两个端点直接的路径,这些点都在这个环上,按照

  • BZOJ 3884: 上帝与集合的正确用法 扩展欧拉定理 + 快速幂2019-06-25 16:52:24

    Code: #include<bits/stdc++.h>#define maxn 10000004#define ll long long using namespace std;void setIO(string s){ string in=s+".in"; freopen(in.c_str(),"r",stdin); }int cnt; int phi[maxn],vis[maxn],prime[maxn]; ll qpow(ll a,ll

  • BZOJ 4278 Tasowanie (后缀数组)2019-06-22 10:03:49

    居然把后缀数组写成n^2的。。我真厉害。。 想了无数种方法,最后发现就是比后缀字典序排名,后缀数组即可 注意每个字符串的结尾处要加上一个\(\inf\), 因为相当于要把空位尽量后移使得非空位集中在前面 代码 #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm

  • bzoj 46602019-06-20 16:38:17

    三倍经验...(然而我并没有氪金所以只能刷一倍...) 考虑在什么情况下两点是合法的: 可以看到,对于红色的点而言,绿色的点是合法的,而黄色的点是不合法的 那么观察一下这几个点的切线把圆分成的这几个弧之间的关系,可以看到:如果两个弧相交但不包含,那么对应的两点合法(比如红色和绿色),剩余情况

  • BZOJ 2850: 巧克力王国 KDtree + 估价函数2019-06-20 15:44:17

    Code: #include<bits/stdc++.h>#define maxn 100000 #define inf 1000000008 #define mid ((l+r)>>1)#define ll long long#define lson (t[x].ch[0]) #define rson (t[x].ch[1]) using namespace std;void setIO(string s){ string in=s+".in";

  • [BZOJ 3601]一个人的数论2019-06-16 19:50:59

    [BZOJ 3601] 一个人的数论 题意 给定 \(K\) 和 \(n\) 对 \(p_i,r_i\), 令 \(N=\prod p_i^{r_i}\), 求下式对 \(10^9+7\) 取模后的值: \[ \sum_{k=1,k\perp N}^{N-1} k^K \] 其中 \(p_i,r_i\le 10^9, K\le 100, n\le 1000\). 题解 看见有学弟做了于是也做一做... 推了推发现可能要用

  • BZOJ 3196 二逼平衡树2019-06-15 22:01:47

    线段树套平衡树 上次spaly头铁卡不过去。。leaf tree轻轻松松~ #include <bits/stdc++.h> #define INF 2147483647 #define full(a, b) memset(a, b, sizeof a) #define FAST_IO ios::sync_with_stdio(false), cin.tie(0), cout.tie(0) using namespace std; typedef long long ll;

  • BZOJ 3631: [JLOI2014]松鼠的新家2019-06-15 16:02:40

      传送门 Description 松鼠的新家是一棵树,前几天刚刚装修了新家,新家有n个房间,并且有n-1根树枝连接,每个房间都可以相互到达,且俩个房间之间的路线都是唯一的。天哪,他居然真的住在“树”上。松鼠想邀请小熊维尼前来参观,并且还指定一份参观指南,他希望维尼能够按照他的指南顺序,先去a1,

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

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

ICode9版权所有