ICode9

精准搜索请尝试: 精确搜索
  • 习题:Single-use Stones2020-02-04 22:06:14

    题目 传送门 思路 最大的跳跃距离为\(l\) 也就是说实际影响答案的就是区间\(i\)~\(i+l\)的石头的最小值 就相当于水管的流量是由最小的横截面决定的 代码 #include<iostream> using namespace std; int n,m; long long a[100005]; long long s[100005]; long long ans=(1ll<<60);

  • [NOI2009]诗人小G2020-01-29 18:56:10

    题目描述 小 G 是一个出色的诗人,经常作诗自娱自乐。但是,他一直被一件事情所困扰,那就是诗的排版问题。 一首诗包含了若干个句子,对于一些连续的短句,可以将它们用空格隔开并放在一行中,注意一行中可以放的句子数目是没有限制的。小 G 给每首诗定义了一个行标准长度(行的长度为一行中符

  • 图论----最短路问题2019-11-10 11:56:19

    最短路问题有3种常用方法: Floyd,Dijkstra,SPFA 以下为总结代码(参考)   Floyd 可求图中任意两点间的最短路 时间复杂度上有很大不足----O(N^3) 代码难度简单 #include<bits/stdc++.h> typedef long long ll; using namespace std; ll n,m,k; ll s[1005][1005]; int main() {

  • CF696B Puzzles 概率期望2019-11-04 21:00:33

    code:  #include <bits/stdc++.h> #define N 100005 #define setIO(s) freopen(s".in","r",stdin) using namespace std; int n,edges; double f[N]; int hd[N],to[N<<1],nex[N<<1],size[N]; void add(int u,int v) {

  • 习题:乃爱与城市拥挤程度2019-11-02 15:50:48

    题目 传送门 思路 暴力做法大家都会,而且分还不低 但是当你打暴力的时候,你会发现很多问题被重复求解 子问题1 怎么快速统计个数 设\(dp[i][j]\)为以i号节点的子树且距离小于k的城市数总和 dp的初始值为1,因为不管k为多少,都至少有它本身一个 \(dp[u][k]=1+\sum_{i}^{i\in son} dp

  • 习题:电压(LCA&树上差分)2019-10-25 23:03:26

    题目 思路 首先对于对于高低电压,其实就是二染色问题 有了这个想法之后 自然就会想到图中的环的奇偶性 如何快速的判断呢? 笔者用的是建树+LCA的办法 之后,如果是奇环,环上的所有的边+1 如果是偶环,则-1 用树上差分的办法可以以 \(O(1)\)的优秀时间复杂度处理 之后判断每一个边的值是

  • 洛谷P1170 兔八哥与猎人2019-10-19 20:02:32

    https://www.luogu.org/problem/P1170 #include<bits/stdc++.h>using namespace std;int a[100005],b[100005],c[100005],d[100005],n;int main() { cin>>n; for(int i=1; i<=n; i++) { int a,b,c,d; cin>>a>>b>>c>

  • [考试反思]1018csp-s模拟测试78(lrd day2) :规律2019-10-18 18:01:25

    zkt没素质果然考炸了! 但是他考炸了和我一个分 这场的状态是真的不好,T3比较简单但没有做,一直干T2结果还是跪了 T1的哈希写挂了,模数比int大了结果一乘就炸long long了。 调了一个小时,傻逼哈希啊调了一个小时。。。心态初崩。 然后看到T2感觉不是特别难就写出来了。少考虑了一种情

  • 模板 - 树状数组2019-09-25 16:55:04

    区间加值,区间求和的树状数组,通过差分来实现。 并没有线段树那么通用。 #include<bits/stdc++.h> using namespace std; typedef long long ll; ll bit[100005]; ll bit2[100005]; int n; void add(int x, ll v) { for(; x <= n; x += x & -x) bit[x] += v; } ll s

  • 最敏捷的机器人2019-09-09 13:00:07

    题目描述 思路 代码 #include <cstdio> #include <cstring> #include <algorithm> using namespace std; // #define max(a, b) (a) > (b) ? (a) : (b) // #define min(a, b) (a) > (b) ? (b) : (a) int n, m; int arr[100005], f1[100005][21], f2[100005][2

  • P4084 [USACO17DEC]Barn Painting2019-08-24 21:04:42

      水一道计数题,增加博客数目(雾)   #include<bits/stdc++.h>using namespace std;const int mod=1000000007;int n,m,ne,head[100005],a,b,dp[100005][4];struct node {int to,nxt;}eg[100005<<1];void adde(int u,int v){eg[++ne].to=v;eg[ne].nxt=head[u];head[u]=ne;}void

  • 小奇的仓库:换根dp2019-08-20 15:50:57

    一道很好的换根dp题。考场上现场yy十分愉快 给定树,求每个点的到其它所有点的距离异或上m之后的值,n=100000,m<=16 只能线性复杂度求解,m又小得奇怪。或者带一个log像kx一样打一个线段树 我们可以发现,m小的话对距离很大的路径的影响也不会超过16。 那么变化的其实就是最后4个二进制位

  • PAT 1065 单身狗 C语言实现 附带详细解题思路2019-08-17 15:02:08

    “单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。 输入格式: 输入第一行给出一个正整数 N(≤ 50 000),是已知夫妻/伴侣的对数;随后 N 行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个 ID 号,为 5 位数字(从 00000 到 999

  • 2019牛客暑期多校训练营(第八场)2019-08-13 22:04:02

    题号 标题 已通过代码 题解/讨论 通过率 团队的状态 A All-one Matrices 点击查看 进入讨论 686/3129 通过 B Beauty Values 点击查看 进入讨论 936/2199 通过 C CDMA 点击查看 进入讨论 777/1263 通过 D Distance 点击查看 进入讨论 157/1023 已补 E Explorer 点击

  • UVA - 11235 Frequent values ST表2019-08-09 16:40:00

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2176 题目大意:给定一个非递减数列Ai,你只需要支持一个操作:求一段区间内出现最多的数字的出现次数。 思路:st表。首先要把原序列A分成块。相等的数我们合成一块并把这一块的

  • Luogu P1407 [国家集训队]稳定婚姻 (二分图写法)2019-08-04 15:52:21

    RT,这是一道强联通分量。 而我一个热爱匈牙利的OIer 默默敲下了... #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<map> using namespace std; int n,m,cnt,vis[100005],match[100005],head[100005],now[100005]; map<strin

  • 2019牛客暑期多校训练营(第四场) - K - number - dp2019-07-27 18:53:31

    https://ac.nowcoder.com/acm/contest/884/K 一开始整了好几个假算法,还好测了一下自己的样例过了。 考虑到300的倍数都是3的倍数+至少两个零(或者单独的0)。 求以第i个位置的数为结尾的前缀和为j的数的方案数。 当遇到至少两个0的时候,ans+=dp[0][i-2]+1。 +1是那两个0的贡献。 这样子

  • [HNOI2004]打鼹鼠2019-07-26 16:54:26

    题目链接 题目简述:首先吧,这道题我们用DP。毕竟它有可转移的状态又是求最优解。选择了DP之后考虑维度,一开始我想的是棋盘嘛,再加一个时间,三维一套带走。可是看了数据范围,会爆炸,数组都开不了,实力劝退。那么题目给了我们什么呢?   鼹鼠的位置,出现的时间 但是我们上面的分析发现,这两个

  • P2590 [ZJOI2008]树的统计2019-07-23 12:56:46

    的确是入门题 #include<bits/stdc++.h>#define N 100005#define inf 1000000000using namespace std;int n,q,a[4*N];struct Edge{ int u,v,next;}G[N];int tot=0,head[N];int size[100005],wson[100005],fa[100005],d[100005],top[100005];int tpos[100005],pre[100005],

  • Luogu P1654 OSU! | 期望2019-07-19 22:52:36

    题目链接 很妙的一道题。 题目要求$X^3$的期望值。 直接求不好求。 考虑先求出$X$和$X^2$的期望值,然后再求$X^3$的期望值。 迎.刃.而.解.   #include<iostream>#include<cstdio> using namespace std; double p[100005],x1[100005],x2[100005],x3[100005];int main(){

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

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

  • luogu 48862019-07-08 21:55:42

    点分治好题 统计距离正常点分治统计即可,我们只需考虑何时达到最优 有两种情况: 第一:代价最大的询问两个端点在不同的两个子树中 因为这种情况下,无论根向那个子树移动都会等价地增加到达另一个端点的代价,因此此时总代价已经达到最小 第二:代价最大的询问有多组,且这些点不在同一棵子树

  • P3106 GPS的决斗2019-07-03 13:43:08

    题面:https://www.luogu.org/problemnew/show/P3106 本题三次建图: 先将GPS1的图存入邻接表。跑一遍dijkstra 然后将GPS2的图再存入邻接表。再跑一遍dijkstra 最后将2次跑过的dijkstra,得到的最短路后所发出的警告数(分别不在2个Gps的次数)当成边权,再跑一遍dijstra。 Code: #incl

  • P4878 [USACO05DEC] 布局2019-07-02 21:48:14

    题面lalala 这居然是个紫题???原谅我觉得这题是模板。。。 这个这个,这题的算法呢其实是一个叫差分约束的东西,也是今天下午我们机房的重点,如果不知道这个差分约束是个啥的人呢,自行百度一下谢谢。。 好吧还是简单介绍一下,简而言之,就是对一堆子不等式进行最短路模型化,然后依照问题用最短(

  • ST表基础模板2019-07-02 17:04:09

    ST表是用来求RMQ问题(求区间最大或最小值问题)的实用数据结构,支持\(O(nlog_n)\)建立,\(O(1)\)查询,是比较高效的结构 其原理实质上是DP(我最讨厌的东西) 题面:屠龙宝刀... 这是一道ST表经典题——静态区间最大值 请注意最大数据时限只有0.8s,数据强度不低,请务必保证你的每次查询复

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

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

ICode9版权所有