ICode9

精准搜索请尝试: 精确搜索
  • BZOJ 4355: Play with sequence 吉司机线段树2020-03-24 20:59:13

    吉司机线段树.     注意一定要 pushdown code:   #include <cstdio> #include <algorithm> #include <cstring> #define ll long long #define lson x<<1 #define rson x<<1|1 #define N 300007 #define I(s) freopen(s".in

  • hdu20072020-03-16 20:42:54

    平方和与立方和 AC的代码: #include<stdio.h> int main() { int m,n,x,y,t; while(scanf("%d %d",&m,&n)!=EOF) { x=0;y=0; //注意要满足m<n这一条件 if(m>n) { t=m; m=n; n=t; } for(;m<=n;m++) {

  • opendaylight+mininet+openswitch构建SDN网络2020-03-06 16:58:10

    环境搭建(软件包可以去GitHub去拿): 一、 安装JAVA apt –y install openjdk-8-* #要安装8版本的以上的java环境。 二、 安装karaf tar xf  ***karaf cd **karaf vim bin/setenv export JAVA_HOME=”/usr/lib/jvm/java-8-openjdk-amd64”  #添加环境变量 ./bin/karaf  #执行 进去

  • kd-tree2020-02-26 21:56:21

    \(kd-tree\) 是一种比较毒瘤的数据结构,不是很常考,会的人也不是很多。但是NOI考过,省选也考过,有时候也可以干一点暴力的事。 一般带修,可插入,允许强制在线(只是麻烦一点),然后查询就稀奇古怪了,比如给个矩形,问矩形里有几个点(据说二维的可以树套树,可是我不会),或者给每个点一个权值,问矩形里

  • Game of Credit Cards2020-02-22 18:08:36

    After the fourth season Sherlock and Moriary have realized the whole foolishness of the battle between them and decided to continue their competitions in peaceful game of Credit Cards. Rules of this game are simple: each player bring his favourite n-dig

  • div2 620 C2020-02-22 14:51:39

    C Tag 双指针,贪心 定义一个温度区间,\([mn,mx]\),使得这个范围在\(t\)分钟的变化与下一个温度区间产生交集 然后不断的迭代这个区间,如果中途不能与下一个区间产生交集,或者最后区间不存在就输出No 因为客人到达的时间为增序,所以不需要排序 #include <bits/stdc++.h> using namespace

  • [THUSC2016]成绩单 [区间dp]2020-02-05 23:57:36

    简单区间dp。 考虑 \(f_{i,j,mn,mx}\)表示 \(i,j\) 区间的最大值为 \(mx\),最小值为 \(mn\) 的最小花费,\(g_{i,j}\) 为删掉 \([i,j]\) 的最小花费。目标答案:\(g_{1,n}\) 我们容易发现这个状态可以由区间 \([L,R-1]\) 和 \([R,R]\) 合并起来,即加入一个 \(v_r\) ,第一个转移方程 \(f_

  • 排序算法2020-02-04 14:51:20

    10种排序算法的Java实现 import java.util.*; public class Sort { static int min(int a,int b){ return Math.min(a,b); } static int max(int a,int b) { return Math.max(a,b); } static void swap(int[] a,int i,int j){ int t=a[i];

  • 【BZOJ3514】GERALD07加强版(LCT+主席树)2020-01-29 14:03:11

    点此看题面 大致题意: 一张\(n\)个点\(m\)条边的无向图,求当只保留编号在\([l,r]\)内的边时的连通块个数。(强制在线) 前言 \(Jan\ 29th\)刷题计划(2/6),算法标签:LCT、主席树。 真的是很妙的一道题啊! 分析一条边的贡献 设想在十分理想的状态下,这些边刚好能构成森林,则连通块个数就是\(n\)

  • 【Leetcode】64. Minimum Path Sum2020-01-28 12:01:43

    题目地址: https://leetcode.com/problems/minimum-path-sum/ 给定一个矩阵,求从左上到右下所有路径中和最小的那条路径的和。每步只能向右或者向下走。动态规划。设f[i][j]f[i][j]f[i][j]表示从grid[0][0]grid[0][0]grid[0][0]到grid[i][j]grid[i][j]grid[i][j]的所有路径中,

  • 斐波那契数列对10007取余数2020-01-26 22:09:20

    Mn = ( Mn-1 + Mn-2 ) % 10007 因为 *F(n) = X1 * 10007 + Mn F(n+1) = X2 * 10007 +Mn+1 F(n+2) = F(n) + F(n+1) =(X1 + X2)+100007 + Mn + Mn+1 Mn+2 = F(n+2) / 10007 = Mn + Mn+1 所以 Mn = ( Mn-1 + Mn-2 ) % 10007 #include <iostream> int main() { int a = 1,b

  • [洛谷P5180][模板]支配树2020-01-15 13:53:36

    Solution 对于 \(DAG\),拓扑排序 \(+\) 倍增 \(LCA\) 就可以做了(不会的可以先做 [ZJOI2012] 灾难) 对于一般有向图(假设连通),转成等价的 \(DAG\) 后采用上述方法即可 首先构造出一棵 \(dfs\) 树,记录每个点的 \(dfn\) 显然一条边 \((u,v)\) 如果不在 \(dfs\) 树上,那么 \(dfn[u]>dfn[v]

  • CF903G Yet Another Maxflow Problem2020-01-14 22:55:06

    Link 先转化为最小割。 显然\(A\rightarrow A,B\rightarrow B\)的边最多割一条。 那么如果我们割的是\(A_u\rightarrow A_{u+1},B_{v-1}\rightarrow B_v\),那么总共的代价是\(\sum\limits_{i=1}^u\sum\limits_{j=v}^ne(i,j)+e(A_u,A_{u+1})+e(B_{v-1},B_v)\)。 最开始的情况我们

  • CF901C Bipartite Segments2020-01-14 22:04:06

    Link 没有偶环的图就是仙人掌,这两个条件完全等价。 而二分图是没有奇环,因此一个点集的诱导子图是二分图当且仅当这个点集的诱导子图无环。 那么我们把仙人掌上的环先抠出来,设一个环中最小的和最大的点的编号分别为\(l,r\),那么\(\forall i\in[1,l],j\in[r,n]\),\([i,j]\)这个区间

  • 最小割树(洛谷4897)2019-12-23 23:54:59

    最小割树 求任意两点间的最小割 每次把当前点集中任意两点uv作为源汇跑最小割,连一条uv之间权值为最小割的边,之后按照分成的集合向下做 两点间最小割=新图中路径上的最小边权 code 还在调 #include <algorithm> #include <iostream> #include <cstring> #include <cstdlib> #includ

  • Codeforces Global Round 6D(VECTOR<ARRAY<INT,3> >)2019-12-20 16:00:45

    一个人只要存在债务关系,那么他的债务可以和这整个债务关系网中任何人连边,和他当初借出或欠下的人没有关系。只需要记录他的债务值即可。 1 #define HAVE_STRUCT_TIMESPEC 2 #include<bits/stdc++.h> 3 using namespace std; 4 long long val[100007]; 5 vector<array<long l

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

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

  • 【刷题】【单调栈】请客2019-11-11 18:52:58

    神奇做法,神奇算法   #include<cstdio> #include<cstdlib> #include<stack> #include<algorithm> using namespace std; int n,m; const int N=303; int d[N][N],mn[N],f[N]; int ans[N*N]; stack <int > s; void calc() { int sum; for(int

  • 【刷题】【搜索】新数独2019-10-31 16:02:36

    很暴力的搜索,还没有什么剪枝......   心得: 【1】如果只查询和修改,用bool比bitset快 【2】rnt在循环中会比int快 【3】减少简单的函数调用 #include<cstdio>#include<cstdlib>#include<bitset>#include<iostream>#define rnt register int using namespace std;int ans[10][10];c

  • P5541 [USACO19FEB]Sleepy Cow Herding2019-10-18 21:53:27

    ri,被黄题虐。 思路:贪心?? 提交:2次 错因:没有特判 题解: 先排序。 最小代价:固定区间长度为\(n\),我们扫一遍数组看区间最多包含几个数,设为 \(mx\) ,答案就是\(n-mx+1\);然而还要特判一种,见下。 此时答案是2,但是我们会算成1 最大代价:考虑一定是往一边缩的感觉,于是是端点先跳到一边的里面

  • 【刷题】【LCA】跳跳棋2019-10-16 10:01:55

    (直接复制自luogu题解) 精巧的建模题。 划重点了划重点了一次只允许跳过1颗棋子,这句话是解题的关键。 手玩一下跳法,现有描述位置的递增三元组(x,y,z)(x,y,z),研究它能够在一步之内跳到何处。 首先,中间的元素可以随意往两边跳到达状态(2x-y,x,z)(2x−y,x,z)和状态(x,z,2z-y)(x,z,2z−y

  • 析合树2019-09-12 17:02:17

    析合树是一种解决连续段问题的数据结构。 比如这样的一个问题:给你一个\(1\)到\(n\)的排列,然后有一堆询问,每次询问区间\([l,r]\),问包含\([l,r]\)的最小连续段是什么。 也就是这题 所谓的连续段,就是满足\(max_{l..r}-min_{l..r}+1=r-l+1\)的连续段。 推荐这篇:https://oi-wiki.org/d

  • ZR#955 折纸2019-09-02 21:03:46

    ZR#955 折纸 解法: 可以发现折纸之后被折到上面的部分实际上是没有用的,因为他和下面对应位置一定是一样的,而影响答案的只有每个位置的颜色和最底层的坐标范围。因此,我们只需要考虑最底层即可,即我们可以把折纸等效为裁纸,每次去掉较小的那一部分。 用哈希维护每一列和每一行的极大

  • 剑指offer 把数组排成最小的数2019-08-25 23:53:31

    题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。例如输入数组{3,32,321},则打印出这三个数字能排成的最小数字为321323。   思路:定义排序规则。 两个数字m和n拼接成数字mn和nm,如果mn小于nm,应该打印mn,m放在n前面   1 class

  • [Jzoj] 3503. 粉刷2019-08-17 21:43:23

    题目描述 墙可以看作一个 N×MN\times MN×M 的矩阵,有一些格子是有污点的。现在可以竖着刷一次,覆盖连续的最多CCC列,或者横着刷一次,覆盖连续的最多 RRR 行。已知墙上的情况告诉你,求出最少要刷多少次才能刷干净! 题目解析 用DFSDFSDFS先枚举每一行涂和不涂的状态,对于没有涂的

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

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

ICode9版权所有