代码人生的小狗窝

一行行枯燥的代码,却描绘出人生的点点滴滴

推荐文章

NOIP2015运载计划(树上前缀和+LCA+二分)

    NOIP2015运输计划(树上前缀和+LCA+二分)Description 公元 2044 年,人类进入了宇宙纪元。 L 国有 n 个星球,还有 n−1 条双向航道,每条航道建立在两个星球之间,这 n−1 条航道连通了 L 国的所有星球。 小 P 掌管一家物流公司, 该公司有很多个运输计划,每个运输计划形如:有一艘物流飞船需要从 ui 号星球沿最快的宇航路径飞行到 vi 号星球去。显然,飞船驶过一条航道是需要时间的,对于航道 j,任意飞船驶过它所花费的时间为 tj,并且任意两艘飞船之间不会产生任何干扰。 为了鼓励科技创新, L 国国王同意小 P 的物流公司参与 L 国的航道建设,即允许小P 把某一条航道改造成虫洞,飞船驶过虫洞不消耗时间。 在虫洞的建设完成前小 P 的物流公司就预接了 m 个运输计划。在虫洞建设完成后,这 m 个运输计划会同时开始,所有飞船一起出发。当这 m 个运输计划都完

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(1076

2018-08-14

数据结构与算法->树->2-3-4树的查寻,添加,删除(Java)

    数据结构与算法->树->2-3-4树的查找,添加,删除(Java)  代码: 兵马未动,粮草先行 作者: 传说中的汽水枪 如有错误,请留言指正,欢迎一起探讨. 转载请注明出处.   目录 一. 2-3-4树的定义 二. 2-3-4树数据结构定义 三. 2-3-4树的可以得到几个推论 四. 2-3-4树节点keys/subNodes相关方法定义与解释 五. 2-3-4树节点性质属性相关方法定义 六. 2-3-4树查找逻辑解释和代码实现 七. 2-3-4树插入逻辑解释和代码实现 八. 2-3-4树删除逻辑解释和代码实现 九. 2-3-4树辅助功能和测试   摘要 网上有一大堆介绍了2-3-4树这种数据结构,但是没有给出代码实现,本系列文章是实现2-3-4树的查找/插入/删除操作!   一. 2-3-4树的定义 2-3-4树是一种阶为

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(932

2018-08-14

八皇后有关问题及控制台动态演示

    八皇后问题及控制台动态演示八皇后问题是个历史挺悠久的问题,马克斯·贝瑟尔于1848年提出,具体参照百度百科的说明:在8×8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 在解决这一问题上回溯法变得很有用,回溯法形象点说有点像走迷宫,当这条路走不通时,退回上一次的状态,寻找另一个方向继续走下去。 在程序设计过程中,过程型语言讲究模块化设计,对象型语言则主张一切皆对象,愚以为二者并非完全对立的两种状态,准确点说应该是,在将一切对象化的过程,问题的解决要模块化,以八皇后问题为例,我们可以设计一个EightQueen类,此为对象化,而EightQueen类内部的问题解决过程则要遵循模块化,解决八皇后问题首先我们需要一个可以判断在某个位置放皇后是否符合条件的函数,然后还需要可以进行回溯于递归的函数,如果还想动态化地演示过程,则还需要

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(1642

2018-08-14

java实现硕大无比整数加减乘除四则运算

    java实现超大整数加减乘除四则运算原理: 用数组存储数字,按照计算法则进行运算。   代码: package com.hdwang; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * 大数四则运算(超出long型的大数(64位:18446744073709551615)) * Created by hdwang on 2017/10/9. */ public class Calculator { /** * 两数相加 * @param numStr1 数1 * @param numStr2 数2 * @return 结果 */ public static String add(String numStr1, S

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(567

2018-08-14

【BZOJ1911】【APIO2010】不一般行动队(斜率优化,动态规划)

    【BZOJ1911】【APIO2010】特别行动队(斜率优化,动态规划)【BZOJ1911】【APIO2010】特别行动队 题面 Description 你有一支由 n 名预备役士兵组成的部队,士兵从 1 到 n 编号, 要将他们拆分成若干特别行动队调入战场。出于默契的考虑,同一支特别行动队中队员的编号应该连续,即为形如(i, i + 1, …, i + k)的序列。 编号为 i 的士兵的初始战斗力为 xi ,一支特别行动队的初始战斗力 x 为队内士兵初始战斗力之和,即 X = Xi + Xi+1 + … + Xi+k。通过长期的观察,你总结出一支特别行动队的初始战斗力 x 将按如下经验公式修正为 x': x' = ax^2 + bx + c, 其中 a, b, c 是已知的系数( a < 0)。 作为部队统帅,现在你要为这支部队进行编队,使得所有特别行动队修正后战斗力之和最大。 试

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(1387

2018-08-14

答题笔记-洛谷-P1010 幂次方

    解题笔记-洛谷-P1010 幂次方 0 题面 题目描述 任何一个正整数都可以用2的幂次方表示。例如 137=2^7+2^3+2^0 同时约定方次用括号来表示,即a^b 可表示为a(b)。 由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7= 2^2+2+2^0 (2^1用2表示) 3=2+2^0 所以最后137可表示为: 2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如: 1315=2^10 +2^8 +2^5 +2+1 所以1315最后可表示为: 2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 输入输出格式 输入格式: 一个正整数n(n≤20000)。 输出格式: 符合约定的n的0,2表示(在表示中不能有空格) 输入输出样

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(1276

2018-08-14

良知的可持久化线段树教程

    良心的可持久化线段树教程良心的可持久化线段树教程 在O~I~中辗转了千~百天,终于可以随手写出各种打标记的、不打标记的、一维的、二维的、求最值的、求和的、求第k大的线段树之后—— 我们来学习可持久化线段树吧! 什么是可持久化线段树? 可持久化线段树最大的特点是:可以访问历史版本。例如,我对线段树进行了1000次修改操作,突然问你第233次修改之后某个区间的区间和是多少——这个问题可持久化线段树就可以正常地回答出来。这个性质有许多奇妙的应用。 那么如何实现这样的一棵线段树呢? 想象一棵普通的线段树,我们要对它进行单点修改,需要修改\(\log n\)个点。每次修改的时候,我们丝毫不修改原来的节点,而是在它旁边新建一个节点,把原来节点的信息(如左右儿子编号、区间和等)复制到新节点上,并对新节点进行修改。 那么如何查询历史版本呢?只需记录每一次修改对应的新根节点编号(根据上面描述的操作,根节点

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(1647

2018-08-14

Luogu 1080 【NOIP2012】国君游戏 (贪心,高精度)

    Luogu 1080 【NOIP2012】国王游戏 (贪心,高精度)Luogu 1080 【NOIP2012】国王游戏 (贪心,高精度) Description 恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 n位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。 国王不希望某一个大臣获得特别多的奖赏,所以他想请你帮他重新安排一下队伍的顺序,使得获得奖赏最多的大臣,所获奖赏尽可能的少。注意,国王的位置始终在队伍的最前面。 Input 第一行包含一个整数 n,表示大臣的人数。 第二行包含两个整数a和b,之间用一个空格隔开,分别表示国王左手和右手上的整

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(1954

2018-08-14

简略并查集归纳

    简单并查集归纳并查集就是一种一边查找一边并集的数据结构,简单的并查集经常应用于朋友圈等题目,即:x和y是朋友,y和z是朋友,则x和z是朋友,下面给出一组数据表示xx和yy是朋友,最后问一共有多少个朋友圈。这类问题一般用并查集解决比较快。下面明确并查集做的事情: 1.查集,即查找某个元素是否包含在一个集合里面 2.并集,即将两个集合合并到一块知道并查集要做的事后,实现它就比较简单了,数据结构书上教我们的是用树的方法来实现并查集,即用一个数组来模拟树,然后利用树的特性来实现,但是那个一下子会有点难以理解,所以我们一开始可以用java自带的集合类来模拟实现,帮助理解。下面是用java集合来实现并查集的代码: 1 import java.io.*; 2 import java.util.*; 3 4 public class javaSet_union_find_set { 5

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(908

2018-08-14

递归跟迭代的区别

    递归和迭代的区别递归和迭代的区别 参考: 递归和迭代的区别 - CSDN博客http://blog.csdn.net/swliao/article/details/5337896   递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己. 一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合. 使用递归要注意的有两点: 1)递归就是在过程或函数里面调用自身; 2)在使用递归时,必须有一个明确的递归结束条件,称为递归出口.   递归分为两个阶段: 1)递推:把复杂的问题的求解推到比原问题简单一些的问题的求解; 2)回归:当获得最简单的情况后,逐步返回,依次得到复杂的解.   利用递归可以解决很多问题:如背包问题,

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(671

2018-08-14

蒟蒻关于斜率优化DP容易的总结

    蒟蒻关于斜率优化DP简单的总结斜率优化DP 题外话 考试的时候被这个玩意弄得瑟瑟发抖 大概是yybGG的Day4 小蒟蒻表示根本不会做..... 然后自己默默地搞了一下斜率优化 这里算是开始吗?? 其实我讲的会非常非常非常简单,,,而且绝对没有一张图(因为我绘图水平太菜) 貌似没太多友善的题目可以用来搞....算了 虚一点,缥缈一点的来说吧.... 其实我就是写给自己看的... 对于某一类DP方程形如:(当然max也可以) \[f[i]=min(f[j]+g(i,j)) \] 其中\(g(i,j)\) 是一个只和i于j相关的函数 我们知道 转移一定是从某个位置转移过来了,其他位置的转移一定不会比这个位置好 所以,不妨设从j位置转移过来,另外一个奇怪的位置从k转一个过来 于是有: \[f[j]+g(i,j)<f[k]+g(i,k)\] 接下来再假设一步 我们假设\(g(i,j)=h(i

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(1429

2018-08-14

51nod 1494 推选拉票 | 线段树

    51nod 1494 选举拉票 | 线段树51nod1494 选举拉票 题面 现在你要竞选一个县的县长。你去对每一个选民进行了调查。你已经知道每一个人要选的人是谁,以及要花多少钱才能让这个人选你。现在你想要花最少的钱使得你当上县长。你当选的条件是你的票数比任何一个其它候选人的多(严格的多,不能和他们中最多的相等)。请计算一下最少要花多少钱。 Input 单组测试数据。 第一行有一个整数n (1 ≤ n ≤ 10^5),表示这个县的选民数目。 接下来有n行,每一行有两个整数ai 和 bi (0 ≤ ai ≤ 10^5; 0 ≤ bi ≤ 10^4),表示第i个选民选的是第ai号候选人,想要让他选择自己就要花bi的钱。你是0号候选人(所以,如果一个选民选你的话ai就是0,这个时候bi也肯定是0)。 Output 输出一个整数表示花费的最少的钱。 Input示例 5 1 2 1 2 1 2 2

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(963

2018-08-14

各种读入形式速度比较

    各种读入方式速度比较以前写过一篇比较scanf与cin的博客,但是那篇博客存在很多bug,测速也很不规范。 今天我收集了一下众大佬的读入优化,来做个比较 特别鸣谢:my,zyh,hzwer,lyq   首先看一下各位大佬的读入优化 my(这是个超级大蒟蒻) 这是我自己yy着写出来的,虽然长得丑,但是也不快 1 inline void read(int &n) 2 { 3 char c=getchar();bool flag=0;n=0; 4 while(c<'0'||c>'9') c=='-'?flag=1,c=getchar():c=getchar(); 5 while(c>='0'&&c<='9') n=n*10+c-48,c=getchar();flag==1?n=-n:n=n; 6 }

    阅读全文>>

作者:coody分类:【_数据结构与算法浏览(508

2018-08-14
上一页 1/139页 下一页