WayJasy的博客

懒人懒福
私信 关注
WayJasy
码龄3年

叁肆伍叁,伍肆伍物

  • 19,696
    被访问量
  • 163
    原创文章
  • 68,644
    作者排名
  • 6
    粉丝数量
  • 于 2018-04-18 加入CSDN
获得成就
  • 获得7次点赞
  • 内容获得18次评论
  • 获得21次收藏
荣誉勋章
TA的专栏
  • docker
    3篇
  • Linux
    1篇
  • leetcode
    1篇
  • 笔记
    4篇
  • springboot+es
    3篇
  • 面试题
    1篇
  • 数据库
    1篇
  • Java基础
    4篇
  • 剑指offer
    12篇
  • 链表
    2篇
  • 计算机网络
    1篇
  • 各种安装
    1篇
  • 知识汇总
    1篇
  • 命令行
    1篇
  • 线段树
    12篇
  • 最短路
    3篇
  • 树状数组
    4篇
  • 容斥
    2篇
  • 思维
    10篇
  • 动态规划
    22篇
  • 搜索
    2篇
  • 概率期望
    1篇
  • 模拟
    4篇
  • 规律
    1篇
  • 主席树
    3篇
  • FJNU21届低编
    1篇
  • DFS
    6篇
  • 尺取
    1篇
  • 差分约束
    1篇
  • 二分
    2篇
  • 位运算
    1篇
  • 微信小程序初探
  • 数论
    5篇
  • 字符串
    11篇
  • 一些骚定理骚操作
    2篇
  • 牛客2018多校补题
    1篇
  • 牛客补题
    1篇
  • 分块
    2篇
  • 后缀数组
    5篇
  • 图论
    14篇
  • 单调队列/栈
    2篇
  • 2018hdu多校
    1篇
  • 树套树
    1篇
  • 数据结构
    2篇
  • FFT
    1篇
  • codeforces
    6篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 课程
  • 帖子
  • 收藏
  • 关注/订阅

Windows下docker安装mysql并挂载数据

一、拉取mysql镜像docker pull二、运行镜像生成容器docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql三、创建本地挂载目录举例: E:\docker-mysql\data 存放数据 E:\docker-mysql\conf 存放配置文件四、复制一份mysql容器配置文件到本地挂载目录docker cp mysql:/etc/mysql/my.cnf E:\docker-
原创
0评论
0点赞
发布博客于 23 天前

sonarqube 集成 golangci-lint

1、在项目根目录下执行golangci-lint run --out-format checkstyle ./xxx/... > report.xmlxxx 表示 你想要扫描的文件路径,/... 表示递归扫描当前路径下的所有文件执行后在根目录下就会生成 report.xml 文件2、在项目根目录下执行sonar-scanner -Dsonar.go.golangci-lint.reportPaths=report.xml将 report.xml 上传到 sonarqube 就大功告成.
原创
8评论
0点赞
发布博客于 2 月前

docker 搭建 sonarqube

Docker (docker-compose) 搭建 sonarqube一、需要Dockersonarqube 镜像postgres 镜像二、准备镜像1)Docker安装:略2)sonarqube 镜像拉取docker pull sonarqube3)postgres 镜像拉取docker pull postgres三、编写docker-compose分别新建两个文件夹 sonarqube 和 postgres 存储两者的 docker-compose 文件和环境变量
原创
0评论
0点赞
发布博客于 3 月前

Linux 下文件权限查看

直接入题是个权限位第一位: 表示文件类型[-] : 普通文件[l] : link文件[d] : 目录文件剩下 2~10 位,每三位分别对应不同用户,2-4位代表所有者user的权限说明,5-7位代表组群group的权限说明,8-10位代表其他人other的权限说明。r :可读 代表数字 4w :可写 代表数字 2x :可执行 代表数字 1每三位看作一个数字,那么 -rwxrwxrwx 对应权限就是 777-rwxr--r-x 就是 745修改权限 ch
原创
0评论
0点赞
发布博客于 6 月前

MySQL索引简介

索引索引什么是索引索引的目的索引的优劣势优势劣势索引分类单值索引唯一索引复合索引基本语法索引结构哪些情况需要建立索引哪些情况不要创建索引索引优化索引失效(避免)建议索引什么是索引索引(Index)是帮助MySQL高效获取数据的数据结构。索引的本质: 数据结构。可以简单理解为“排好序地快速查找的数据结构”。除数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现搞基查找算法。这种数据结构,就是索引。(典型B树索
原创
0评论
0点赞
发布博客于 7 月前

Redis学习整合

RedisRedis1.关系型数据库CAP原理CAPCAP 的三进二BASE2. 分布式和集群简介分布式集群3. Redis入门是什么特点应用基本操作添加取值4. Redis数据类型StringListSetHashZset5. Redis三种特殊数据类型geospatial 地理位置Hyperloglog 基础统计Bitmaps6. Redis的事务事务7. Redis锁悲观锁乐观锁8. Jedis操作导入依赖连接redis数据库具体API操作事务9. Springboot整合Redis10. Redis
原创
0评论
0点赞
发布博客于 7 月前

leetcode刷题(更新ing)

树1.二叉树前序遍历非递归用一个栈维护节点,插入顺序为右左根,那么弹出顺序为根左右,正好是前序顺序。class Solution { public List<Integer> preorderTraversal(TreeNode root) { Stack<TreeNode> st = new Stack<>(); List<Integer> ans = new ArrayList<>();
原创
0评论
0点赞
发布博客于 7 月前

面试题专题一: Java基础

面试题专题一Java基础1. JAVA 中的几种基本数据类型是什么,各自占用多少字节int :4long:8float:4double:8boolean:2char:2byte:1short:22. String 类能被继承吗,为什么。不能。String类底层是一个由final关键字修饰的value数组,由final修饰的变量表示不可改变。同时Stirng类也是由final修饰的,不可被继承。3. String,StringBuffer,StringBuilder 的区别可变
原创
0评论
1点赞
发布博客于 8 月前

MySQL性能优化的21个方法(个人理解)

1. 使用查询缓存优化查询我们知道,一条SQL语句的执行需要经过:解析、优化和截断过程。当有相同的查询SQL被执行了多次时,这些查询结果就会放到一个缓存中。后续相同的查询结果就不需要再次执行SQL语句,而直接从缓存中获取结果。加快了查询性能。目前大多数MySQL数据库自动开启了查询缓存。但是如果我们使用一些数据不固定的查询语句(例如使用rand()函数),这样就导致每次查询的结果都不固定,数据库就不会使用查询缓存。2. EXPLAIN 你的select 查询使用 explain 命令可以让你知道My
原创
0评论
0点赞
发布博客于 8 月前

进程间的六种通信方式简记

管道管道在创建之初会开辟一块固定大小的内存区域,因此对于数据量较大的情况,管道是难以应付的。消息队列send Message发送消息, receive 读取消息。 其中有两次copy数据的过程,会有额外的CPU消耗,不适合频繁且数据量大的通信。共享内存多个进程共享一块共享内存。进程间是没有同步机制的,通过信号量可以去实现这么一个同步机制。套接字(Socket)单机情况下也能使用的通信方式,但是效率较低信号量本质上是一个锁机制,通过加锁来实现进程间互斥。信号本身并..
原创
0评论
0点赞
发布博客于 8 月前

最大正方形 leetcode221

在一个由 0 和 1 组成的二维矩阵内,找到只包含 1 的最大正方形,并返回其面积。示例:输入:1 0 1 0 01 0 1 1 11 1 1 1 11 0 0 1 0输出: 4思路:1、暴力O(n2∗m2)O(n^2*m^2)O(n2∗m2)就不说了2、动态规划dp[i][j]dp[i][j]dp[i][j]表示从(0,0)(0,0)(0,0)开始到(i,j)(i,j)(i...
原创
0评论
0点赞
发布博客于 8 月前

链表专题 3. 删除链表节点

题目描述给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。返回删除后的链表的头节点。思路对于头结点不好处理的题,通常设置一个哑结点作为 “头”/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * L...
原创
0评论
0点赞
发布博客于 9 月前

链表专题 2. 求链表交点

leecode题目描述:给出两个单链表,求他们的公共交点思路:如果两条链表有交点x,那么他们在x后面的节点都是相同的。先求出链表长度差 dif,遍历其中一条链表使他们的长度相同,然后一顿乱搞。/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNo...
原创
0评论
0点赞
发布博客于 9 月前

链表专题:1、合并有序链表

题目描述:将两个升序链表合并为一个新的升序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4/** * Definition for singly-linked list. * public class ListNode { * ...
原创
0评论
0点赞
发布博客于 9 月前

jdk14 新特性

Java14新特性1. instanceof 模式匹配旧:类型匹配后的使用,需要强制转换private static void old(Object obj) { if(obj instanceof String){ String str = (String)obj; System.out.println(str.contain("java")); ...
原创
0评论
0点赞
发布博客于 9 月前

TCP相关问题极简分析

TCPTCP:全双工可靠传输,面向字节流传输Tcp三次握手① Server处于空闲监听LISTEN状态② Client发送SYN连接请求,然后处于SYS_SENT状态 (第一次握手)③ Server收到请求,发送ACK应答,表示收到了请求,同时间再发送SYN信号给Client,表示可以建立连接了。此时Server处于SYN_RECD状态 (第二次握手)④ Client收到Serv...
原创
0评论
0点赞
发布博客于 9 月前

剑指offer 67题 10 链表中倒数第k个结点

题目描述输入一个链表,输出该链表中倒数第k个结点。思路遍历链表存到list中,然后使用Collections集合工具类翻转取值,注意判断一些边界条件/*public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}...
原创
0评论
0点赞
发布博客于 9 月前

HashMap初始容量设置问题

HashMap初始容量设置问题我们都知道HashMap的默认容量为16,但是:HashMap<Object, Object> objectObjectHashMap = new HashMap<>(13); //13为自定义的hashmap容量为什么我们可以这样设置HashMap的容量而不报错呢?分析一下HashMap源码:调用了两个参数的构造方法我们注意...
原创
0评论
0点赞
发布博客于 9 月前

关于JAVA动态代理的一些个人理解和实现(基于JDK)

跟着步骤来:1、首先创建一个UserDao接口public interface UserDao { public void add(); public void delete(); public void search(); public void change();}2、创建一个UserDaoImpl实现类public class UserDaoIm...
原创
0评论
0点赞
发布博客于 9 月前

剑指offer 67题 9 矩形覆盖

牛客题目描述我们可以用21的小矩形横着或者竖着去覆盖更大的矩形。请问用n个21的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?思路很容易想到:21只有一种方法。22有两种方法。那 2 * 3, 2 * 4, 2 * n 呢?2*3的摆放方法可以看成:(2 * 2的摆放数,最后再摆一块) + (2 * 1的摆放数,最后再摆两块)那么我们设dp[n]dp[n]dp[n]表...
原创
0评论
0点赞
发布博客于 9 月前

剑指offer 67题 8 变态跳台阶

题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。思路《跳台阶》那题是一次只能跳1级或2级,这题是一次可以跳任意级。思路和前一题一样dp[n]dp[n]dp[n]表示跳到nnn级的方案数dp[n]=dp[n−1]+dp[n−2]+.....+dp[1]+1dp[n] = dp[n-1]+dp[n-2]+.....+dp...
原创
0评论
0点赞
发布博客于 9 月前

记一下redis(ubuntu)安装过程

1. 下载安装包$ wget http://download.redis.io/releases/redis-xxx.tar.gz#xxx改为对应的版本号,版本号可上官网看2. 解压$ tar -xzvf redis-xxx.tar.gz3. 安装进入解压出来的redis目录,然后执行$ make$ make install #这条命令需要在root权限下执行 4....
原创
0评论
0点赞
发布博客于 9 月前

剑指offer 67题 7 跳台阶

牛客题目描述一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法(先后次序不同算不同的结果)。思路设跳n级台阶的方案数为 dp[n]dp[n]dp[n]由于青蛙一次可以跳上1级或2级,那么:dp[n]=dp[n−1]+dp[n−2]dp[n] = dp[n-1] + dp[n-2]dp[n]=dp[n−1]+dp[n−2]dp[n]dp[n]dp[...
原创
0评论
0点赞
发布博客于 9 月前

剑指offer 67题 6 斐波那契数列

<牛客> 斐波那契数列题目描述大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项为1)。n<=39思路没思路,直接迭代。public class Solution { public int Fibonacci(int n) { int a = 0,b = 1; int c ...
原创
0评论
0点赞
发布博客于 9 月前

剑指offer 67题 6 旋转数组的最小数字

题目描述把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转。输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素。例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数组的最小值为1。NOTE:给出的所有元素都大于0,若数组大小为0,请返回0。思路这题有一个时间复杂度更小的做法:二分旋转后的数组一定是前半部分非严格递增的,后半部分也是非严格递增,且...
原创
0评论
0点赞
发布博客于 9 月前

剑指offer 67题 5 用两个栈实现队列

《牛客》用两个栈实现队列题目描述用两个栈来实现一个队列,完成队列的Push和Pop操作。 队列中的元素为int类型。思路明白栈是FILO(先入后出)的数据结构,队列是FIFO(先入先出)的数据结构。stack1先入的元素需要它先出,那么就需要将它的元素存入另一个栈stack2,这样最先入的元素就变成了stack2的栈顶,那么就可以先出了,实现了队列的操作。import java.uti...
原创
0评论
0点赞
发布博客于 9 月前

剑指offer 67题 4 重建二叉树

题目描述输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。思路这题要稍微找下规律。首先根据前序序列,可以很容易知道,根节点一定是序列的第一个元素那么就可以找到中序序列中根节点的位置。知道了中序序列根节点...
原创
0评论
0点赞
发布博客于 9 月前

剑指offer 67题 3 从尾到头打印链表

题目描述输入一个链表,按链表从尾到头的顺序返回一个ArrayList。思路遍历链表的同时将值插入ArrayList中然后使用Collections集合类的reverse方法进行翻转/*** public class ListNode {* int val;* ListNode next = null;** ListNode(int...
原创
0评论
0点赞
发布博客于 9 月前

剑指offer 67题 2 替换空格

题目描述请实现一个函数,将一个字符串中的每个空格替换成“%20”。例如,当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。思路replace()replace()replace() 方法或者 直接暴力遍历题外话网址中如果有空格等特殊字符,解析过程中会把这些字符替换成类似%20这样的字符串,保证计算机能识别。public class Sol...
原创
0评论
0点赞
发布博客于 9 月前

剑指offer 67题 1 二维数组中的查找

在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。思路一: N2N^2N2暴力,不谈思路二: 由于行从上到下递增,列从左往右递增,那么我们可以从最右上角的数字开始比较。如果当前array[x][y]<targetarray[x][y] <...
原创
0评论
0点赞
发布博客于 9 月前

My线程池笔记

线程池的概念线程池,一种多线程的处理形式,处理过程中可以将任务添加到队列中,然后创建线程启动这些任务。 这里的任务就是实现了Runnable或Callable接口或继承Thread类的对象实例。线程池属于JUC( java.util.concurrent )包。使用线程池好处:重复利用已有的线程继续执行任务,避免线程在创建和销毁时造成的消耗。由于没有创建和销毁时造成的消耗,因此可以提高...
原创
3评论
0点赞
发布博客于 9 月前

通过一个Socket连接的例子来认识 NIO

众所周知,NIO(new IO 也叫做 NoBlocking IO),非阻塞IO,是由BIO演变而来的,它的优势就在于数据传输过程中,由BIO的阻塞式变为非阻塞式,那么什么是阻塞和非阻塞?先来一个BIO的例子。/** * 服务端 */public class Server { static byte[] bytes = new byte[1024]; public sta...
原创
0评论
0点赞
发布博客于 10 月前

springboot 实现发送邮箱验证码

这里使用的是QQ邮箱,其他邮箱类似。1.获取授权码进入QQ邮箱主页面,找到左上方设置 , 选择账户选项卡,往下拉看到把第一项POP3/SMTP服务开启,然后按照他的步骤获取授权码,并且记录下来。2.添加依赖 <dependency> <groupId>org.springframework.boot</groupId> ...
原创
0评论
0点赞
发布博客于 10 月前

知识汇总(更新中...)

网络1.TCP/IP协议Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。2.三次握手第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务...
原创
0评论
0点赞
发布博客于 11 月前

快速访问某文件目录并执行命令

日常工作学习中经常会遇到需要打开某文件中某些.exe或者.bat程序,如果文件深度过深或不方便,这时候我们可以写一个.bat脚本通过命令行来快速执行。cmd /k "cd /d [指定目录]&&[想要运行的程序名或者命令]",...
原创
0评论
0点赞
发布博客于 2 年前

springBoot项目使用templates返回html时无法访问静态文件的问题(已解决)

解决方法:在properties中加入:spring.mvc.static-path-pattern=/static/**
原创
0评论
0点赞
发布博客于 2 年前

记录Springboot学习过程中遇到的一些坑

@Autowired注入为null的问题。①检查service类中是否加了@Service注解②在service类中注入Mapper类时,检查service类实例化对象是否是@Autowired实现的。
原创
0评论
0点赞
发布博客于 2 年前

springboot+ElasticSearch遇到的一些问题(已解决)

1.插入数据时,调用ElasticsearchRepositoryElasticsearchRepositoryElasticsearchRepository中的save()save()save()方法一直无法将实体类插入eseses服务端实体类:控制类:,但是当我将实体类的私有成员改成公有成员后,es服务端就能正常显示数据。未更改前:(第一条数据是用postmanpostmanp...
原创
1评论
1点赞
发布博客于 2 年前

codeforces 1148C - Crazy Diamond(思维+暴力模拟)

传送门题意:给定nnn个数,表示nnn的某个排列。现在你可以交换两个坐标差值大于等于n/2n/2n/2的数,最后使得序列从小到大有序。输出交换次数和交换的坐标。思路:设第iii个数所在位置为ididid,要从ididid复原到iii,有五种复原状态:①id−i①id-i①id−i②id−1−n−i②id-1-n-i②id−1−n−i③id−n−1−i③id-n-1-i③id−n−1−...
原创
0评论
0点赞
发布博客于 2 年前

Educational Codeforces Round 76 (Rated for Div. 2) D(st表+二分)

传送门题意:mmm只怪物,每只怪物有个aaa值。nnn个勇士,每个勇士有ppp和sss,一天只能有一位勇士消耗其sss值去打怪,杀死一只怪消耗111点sss值(s−1)(s-1)(s−1), 第二天所有勇士的sss值都会复原,问需要几天才能杀光所有的怪物。(还有一些细节没描述,大概这个题意。)思路:我们直接二分以LLL为起点最多能杀多少只怪,假设为midmidmid,那么我们对怪物的ppp...
原创
0评论
0点赞
发布博客于 2 年前

2019-2020 ICPC SEERC D - Cycle String?(思维+模拟)

传送门题意:给定长度为2∗n2*n2∗n的循环字符串,对其重新排列使得新字符串中不存在两个及以上长度为nnn的相同子串,问能否构造成功并输出任意新字符串。思路:首先容易发现新串是否合法与出现最多字符的数量有关,稍微打个表发现:出现次数最多的字符(一下称chchch)出现了xxx次.①①①如果x<=nx <= nx<=n,那么我们直接输出原串就好了。②②②如果字符种类数...
原创
0评论
0点赞
发布博客于 2 年前

codeforces1252F Regular Forestation(树hash判子树同构)

传送门题意:给定一棵树,割掉某个点后树能分成xxx个相同的子树,求最大的xxx.思路:答案节点很容易发现就是树的重心。因此只要判断重心的子树是否同构就行了。我的方法是处理出重心的子节点的hash值,n方暴力判断每个节点的hash值。#include<bits/stdc++.h>using namespace std;typedef long long ll;const...
原创
0评论
0点赞
发布博客于 2 年前

Codeforces 600E (dsu on tree)

传送门题意:求以iii为根的子树中,出现颜色次数最多的颜色编号之和。思路:先考虑最暴力的解法:枚举每个节点,dfs其子树暴力求解,复杂度O(n2)O(n^2)O(n2)我们可以先重链剖分出每个节点的重儿子,处理轻链的答案然后合并到重儿子上,更新答案后消除轻儿子对答案的贡献,复杂度O(nlogn)O(nlogn)O(nlogn)#include<iostream>#incl...
原创
0评论
0点赞
发布博客于 2 年前

uva10020 Minimal coverage(最小区间覆盖 贪心)

传送门题意:用最少的线段覆盖区间[0,m][0,m][0,m]思路:将线段左端点从小到大排序。 很容易可以pass掉线段右端点小于000的线段。我们维护一个线段覆盖终点RRR(初始为000)。 当前线段的起点如果小于RRR,那么我们就可以更新最大的终点,因为要用最少的线段,那么就要保证这条线段加进来能延展的终点最长,那么要找一条左端点小于RRR,并且右端点最远的线段。 每次这样更新就好了...
原创
0评论
0点赞
发布博客于 2 年前

hdu4856 (bfs+状压dp)

http://acm.hdu.edu.cn/showproblem.php?pid=4856题意:一个n∗nn*nn∗n的网格图中有mmm个隧道,你可以从任意起点出发,问走过所有隧道需要的最小步数。思路:先bfsbfsbfs预处理出任意两个点之间的最短路,然后状压dpdp[i][j]表示当前走过的隧道状态为i,最后走到的隧道为j的最小步数dp[i][j]表示当前走过的隧道状态为i,最后走...
原创
0评论
0点赞
发布博客于 2 年前

Codeforces Round #592 (Div. 2) D. Paint the Tree

传送门题意:给出一棵树,每一个节点染成某种颜色需要花费 aaa, 每个节点和它直接相连的节点需要染成的颜色互不相同,问染完整棵树的最小花费。思路:由于颜色只有3种,画一画图会发现,如果每个节点的度数超过2,那么一定无解。 也就是说给出的树是一条树链。那么颜色只有3种,一共有6种染色状态,先dfs出树链,然后直接暴力枚举所有状态、#include<iostream>#inc...
原创
0评论
0点赞
发布博客于 2 年前

2017四川省赛 Dynamic Graph (bitset)

传送门题意:给定nnn个点,mmm条边的有向图,初始每个点颜色是白色,qqq次操作,每次操作将某个节点的颜色取反(白变黑,黑边白),每次操作求出二元组(u,v)(u,v)(u,v),从 uuu 到 vvv 的路径上无白色顶点的路径数。思路:暴力修改点,每次修改后dfsdfsdfs一遍求路径,dp[u]dp[u]dp[u]表示以uuu为初始点的路径数转移:dp[u]+=dp[v]dp[u]...
原创
0评论
0点赞
发布博客于 2 年前

codeforces 593div3D 线段树

传送门题意:给定一个字符串修改某个位置的字符查询区间不同的字符种类数思路:对每一种字符建一棵线段树,维护区间该种字符的个数。然后就是裸的单点更新区间查询。#include<iostream>#include<algorithm>#include<cstdio>#include<stdio.h>#include<str...
原创
0评论
0点赞
发布博客于 2 年前

codeforces 585 div2C

传送门题意:给出长度为nnn的两个字符串,构造一个次数最少的交换二元组(x,y)(x,y)(x,y),表示交换s1[x]s1[x]s1[x]和s2[y]s2[y]s2[y],最后使得两个字符串相同思路:首先相同的字符就没必要去交换了。考虑上下字符不同的情况。上aaa,下bbb(下文称ab,baab,baab,ba同理)对于ababab如果有偶数组ababab,我们可以进行numab/2n...
原创
0评论
0点赞
发布博客于 2 年前

hdu5901 大素数筛

(记个模板题意:求1−n中质数个数(n&lt;=1e11)求1-n中质数个数 (n&lt;=1e11)求1−n中质数个数(n<=1e11)出处Meisell−Lehmer算法,复杂度n23Meisell-Lehmer算法,复杂度n^{\frac{2}{3}}Meisell−Lehmer算法,复杂度n32​#include<cstdio>#includ...
原创
0评论
0点赞
发布博客于 2 年前

2019徐州网络赛 G题 (回文树 节点回文串不同的字符个数)

传送门题意:对于给定的字符串,求每个子回文串中不同的字符个数之和。思路:回文树。cnt[i]cnt[i]cnt[i]表示节点 iii 的回文串个数。sum[i]sum[i]sum[i]表示节点 iii 表示的回文串的不同字符个数。在构造回文树的时候判断当前插入的字符 ccc 在其匹配位置 curcurcur 处是否出现过, 在继承curcurcur的答案的基础上进行更新。#incl...
原创
0评论
0点赞
发布博客于 2 年前

HDU4786 A - Fibonacci Tree (最大最小生成树)

VJ传送门题意:问你在一个无向图中是否存在一个生成树,权值为斐波拉契数。思路:生成树的权值范围必定在最小生成树和最大生成树的权值范围之间, 因此用 kruskal 分别求出最大最小生成树权值后,然后二分判断 是否是FIB数,或者用STL都可以。(有段时间没做题了,做做水题找下感觉)#include<iostream>#include<algorithm>#i...
原创
0评论
0点赞
发布博客于 2 年前

2019HDU多校九1002 (线段树求线段交点个数)

hdu6681题意:给你 kkk 条平行于x轴或y轴的射线, 问这些射线把封闭区域n∗mn*mn∗m的矩形分成了几个封闭部分。思路:因为射线都是平行于坐标轴的,那么考虑线段树维护。离散化坐标后,按照xxx坐标从小到大排序。第一遍:如果当前点是竖着分割,那么分割的区间值加一,表示当前这段区间yyy坐标都有射线经过。 如果当前点是横着分割的,那么直接单点查询当前点yyy坐标的值。(deb...
原创
0评论
1点赞
发布博客于 2 年前

Codeforces Round #580 (Div. 2)

传送门A:瞎搞,B:先记录把每个负数处理成−1-1−1,正数处理成+1+1+1对答案的贡献。然后分类讨论一下−1-1−1出现次数的奇偶性,然后加上0的贡献。C:简单构造。由于相邻nnn个数的和的差值绝对值&lt;=1&lt;=1<=1,并且任意一个和差值都&lt;=1&lt;=1<=1,那么先考虑:由于:{S1=a1+a2+...+anS2=...
原创
0评论
0点赞
发布博客于 2 年前

多项式乘法 (FFT模板)

FFT模板题记录一下FFTFFTFFT模板(内存记得开大点(最好四倍))下次改用手写复数类,#include<iostream>#include<algorithm>#include<cstdio>#include<stdio.h>#include<string.h>#include<queue>#incl...
原创
0评论
0点赞
发布博客于 2 年前

2019HDU多校第八场 Andy and Maze (colorr coding问题)

hdu6664题意:有nnn个房间,mmm条边,每条边连接两个房间u和vu和vu和v, 从u到vu到vu到v花费ttt. 每个房间有一颗宝石。 现在要求在取得kkk个宝石的前提下使得花费最多。问最大花费(无法取得kkk颗宝石输出impossibleimpossibleimpossible)思路:又学到了新姿势(color coding问题)我们先随机对每个点进行染色(色号为0~k-1) ...
原创
0评论
0点赞
发布博客于 2 年前

hdu 6611 K Subsequence(最大费用流)

hdu6611题意:从一个无序数组中选出kkk个非严格递增序列使得总和最大。思路:(出题人卡spfaspfaspfa费用流还是比较骚的。。)源点向每一个数建一条容量为1,花费为0的边。 将每个数拆成两个点保证只选中一次,点间建一条容量为1,费用为−a[i]-a[i]−a[i]的边,小的点向大的点连容量为1,花费为0的边,然后点向汇点建一条容量为1,费用为0的边。 还需要一个超级汇点,汇点...
原创
0评论
0点赞
发布博客于 2 年前

2019牛客多校九 J Symmetrical Painting(思维模拟)

传送门题意:给出nnn个长为1, 以及下边界LLL和上边界RRR的矩形,每个矩形初始时涂上黑色。你可以将某些矩形区域涂上白色,涂完后求最大的矩形区域面积,满足存在一条平行于xxx轴的直线平方上下两部分矩形区域面积(即直线上下的黑色部分面积相同)思路:考虑枚举平分线,会发现对于一个矩形来说,平分线越靠近矩形中点,那么我们需要涂色的面积就越小(因为对称,画个图感受一下。),获得的黑色区域面积就...
原创
0评论
0点赞
发布博客于 2 年前

2019牛客多校九 B Quadratic equation(二次剩余)

传送门题意{(x+y)mod&ThinSpace;&ThinSpace;p=bx∗ymod&ThinSpace;&ThinSpace;p=c\begin{cases}(x+y)\mod p = b\\x*y\mod p = c\\\end{cases}{(x+y)modp=bx∗ymodp=c​求解 x,yx,yx,y思路不考虑取模的情况下,原式可...
原创
0评论
0点赞
发布博客于 2 年前

2019HDU多校八 6665 Calabash and Landlord(离散化BFS)

hdu6665题意:求两个矩形在二维平面内组成的封闭区域的个数思路:暴力讨论赛中队友想暴力搞一下就被我否决了(情况太多有这时间还不如去开其他题?)考虑对矩形离散化到一个15∗1515*1515∗15的区域内,矩形的边界用特殊的符号表示,然后对这个区域进行bfsbfsbfs就完事了。#include<map>#include<set>#include<...
原创
0评论
0点赞
发布博客于 2 年前

Mail.Ru Cup 2018 Round 3 D. Decorate Apple Tree

传送门题意:问需要多少种颜色对一棵树的叶子节点进行染色,使得有k(1&lt;=k&lt;=n)个快乐节点k(1&lt;=k&lt;=n)个快乐节点k(1<=k<=n)个快乐节点快乐节点定义为如果该节点的所有叶子节点颜色均不同。(一开始看错题意以为是每个节点的颜色都要不一样正确理解题意后其实就是求每个节点有多少个叶子节点,叶子节点本身就算一个。...
原创
0评论
0点赞
发布博客于 2 年前

2019杭电多校第六场hdu6638 Snowy Smile (最大权值和矩形)

传送门题意:给出二维坐标轴上的n个点,每个点有整数权值。用一个矩形包含若干个点使得总权值和最大。给出 二维坐标轴上的n个点,每个点有整数权值。用一个矩形包含若干个点使得总权值和最大。给出二维坐标轴上的n个点,每个点有整数权值。用一个矩形包含若干个点使得总权值和最大。思路(扯淡拖到现在才补这题。。。赛中尝试使用二维离散化前缀和(wawawa了并且找到了错误样例想法有误),又尝试了扫描...
原创
0评论
0点赞
发布博客于 2 年前

ZOJ 3209 (舞蹈链)

传送门题意:给出一个n∗mn*mn∗m的大矩形,以及ppp个小矩形,给出小矩形的左上角和右下角坐标。 问最少选择多少个小矩形能覆盖大矩形。小矩形不能相交。思路:DLX的基本应用吧(精确覆盖问题)精确覆盖问题:给出一个010101矩阵,选出最少的行,使得每一列恰好有一个1.本题就可以抽象成精确覆盖问题:将ppp 抽象成01矩阵的行, 把n∗mn*mn∗m的矩阵的每一个格子抽象成新01...
原创
0评论
0点赞
发布博客于 2 年前

CF 1198 div1B

传送门题意:1: x y   把 x 位置的数更新为 y2: x   把序列中小于 x 的数更改为x思路:线段树单点更新查询,维护一个lazy标记和区间Min, 每次查询pushdown更新Min#include<bits/stdc++.h>using namespace std;const int maxn = 2e5+5; using ll = long ...
原创
0评论
0点赞
发布博客于 2 年前

HDU多校 第五场 6227 (equation)

传送门题意:对于∑1n∣aix+bi∣=C\sum_1^n|a_ix+b_i| = C∑1n​∣ai​x+bi​∣=C, 求xxx的所有可行解(分数形式表示)。思路:分区间讨论。我们令∣aix+bi∣=0|a_ix+b_i| = 0∣ai​x+bi​∣=0,那么就可以得到nnn个关于 a,ba,ba,b 的解 xix_ixi​,(对每个绝对值编号1~i)按照 xix_ixi​ 的大小(...
原创
0评论
0点赞
发布博客于 2 年前

POJ 1275 差分约束

传送门题意:有一个商店,给出了这个商店一天中每个小时所需要的最少收银员数量R[i]R[i]R[i]。有nnn个求职者,每个求职者有一个开始工作时刻t[i]t[i]t[i],在t[i]t[i]t[i]时刻后的八小时,这个求职者都在工作。问老板最少需要雇佣多少个员工,满足商店营业的条件。思路构造差分约束系统。(以下下标均从1开始)令S[i]S[i]S[i]表示前 iii 个小时在工作的员...
原创
0评论
0点赞
发布博客于 2 年前

POJ1275 差分约束系统

传送门题意:有一个商店,给出了这个商店一天中每个小时所需要的最少收银员数量R[i]R[i]R[i]。有nnn个求职者,每个求职者有一个开始工作时刻t[i]t[i]t[i],在t[i]t[i]t[i]时刻后的八小时,这个求职者都在工作。问老板最少需要雇佣多少个员工,满足商店营业的条件。思路构造差分约束系统。(为了不出现负数,以下下标均从1开始)令S[i]S[i]S[i]表示前 iii ...
原创
0评论
0点赞
发布博客于 2 年前

POJ3169 差分约束系统

http://poj.org/problem?id=3169题意:n头牛初始排列1~n, 现在给出几个限制条件,ML个条件A,B,C表示编号为A,B的奶牛的最远距离只能是C。MD个条件A,B,C表示A,B奶牛最近距离为C,求出编号为1与编号为n的奶牛的最远距离如果无法满足约束条件输出−1-1−1,最远距离如果可以无限远输出−2-2−2思路:看到有约束条件的题基本可以想到用差分约束系统求...
原创
0评论
0点赞
发布博客于 2 年前

CF580 D. Kefa and Dishes (状压DP)

传送门题意nnn个食物中选择mmm个,使得获得的满意度最大。先吃aaa食物再吃bbb食物可以获得额外的满意度。问最后你能获得的最大满意度是多少。思路dp[s][j]dp[s][j]dp[s][j]表示在状态sss下,最后吃的是食物jjj获得的最大满意度。转移方程dp[s][j]=max(dp[s∣(1&lt;&lt;j)][i]+mp[i][j]+w[j])dp[s...
原创
0评论
0点赞
发布博客于 2 年前

最长公共回文子串(回文树做法)

题目链接之前用马拉车+二分哈希做过,但是非常复杂而且容易写错。最近翻博客翻到这题而且正好学了回文树,用回文树真的非常快就能解决这个问题。对于两个串s1,s2s1,s2s1,s2分别建两棵回文树、然后对于偶串根dfsdfsdfs一遍,奇串根dfsdfsdfs一遍,更新答案.#include<bits/stdc++.h>using namespace std;typedef ...
原创
0评论
0点赞
发布博客于 2 年前

BZOJ 1003 最短路dp

https://www.lydsy.com/JudgeOnline/problem.php?id=1003题意:某东西运输货物运输nnn次,每次都从111到mmm。给你一些路线和花费,问nnn天后的最小花费限制条件是再某些天,某些点不能经过更改路线有额外花费 kkk题解: 如果nnn天的路线都不变,那么求一次最短路distdistdist乘上nnn就是答案,但是有些点在某些点无法经过,那么...
原创
0评论
0点赞
发布博客于 2 年前

BZOJ 1001: [BeiJing2006]狼抓兔子 (最小割)

传送门题意不难理解,要求最少数量,其实就是求一个最小割。建图也简单。。有几个坑点:①边的数量大约是6倍的nm (因为三个方向)②点的数量只有nm,最多1e6,注意别开大了MLE其他就是正常的最小割模板。#include <cstdio>#include <cstdlib>#include <cmath>#include <cstring&...
原创
0评论
0点赞
发布博客于 2 年前

2019牛客多校第五场 B(十进制矩阵快速幂)

传送门题目就是求一个大指数幂矩阵快速幂的第nnn项普通的二进制矩阵快速幂无法在给定的时间内跑完,所以将它转换成十进制的(涨姿势了!)#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 1e6+5;char n[maxn];ll Mod;ll x0,x1,a,...
原创
0评论
0点赞
发布博客于 2 年前

2019HDU多校 6621 (主席树+二分)

传送门题意就不解释了。如果按照题意乱搞个树套树好像会T的很惨。考虑不去修改,把绝对值看成一个值域。我们可以二分数组内元素的值,假设为midmidmid, 那么我们会得到一个值域[p−mid,p+mid][p - mid, p+mid][p−mid,p+mid], 答案就是求给定的数组中,落在这个值域内的元素的第 kkk 大, 那么这就是个区间比kkk小的元素个数,不就是个主席树的板子吗。...
原创
0评论
0点赞
发布博客于 2 年前

2019HDU多校 6223 (最小质因子指数幂)

传送门题解:考虑先筛出1e41e41e4以内的素数,对于每个输入的 nnn 先除掉 1e41e41e4 以内的素因子(如果存在的话),并且更新答案。如果除完后nnn 还大于1,说明存在大于1e41e41e4的素因子,而且这些素因子的最多只会有444次方,因为更大的话就会超过1e181e181e18,因此剩下的nnn只会是 ppp2 , ppp3, ppp4。ppp2和ppp4可以一起判断,...
原创
0评论
0点赞
发布博客于 2 年前

hdu 5421回文树头尾插入更新查询

传送门题意:每次可以从已有字符串的头部或者尾部插入一个字符,查询本质不同的回文子串个数和总共的回文子串个数题解:难点就在于插入操作。如果插入当前字符后,整个字符串并不是个回文串,那么从头插或者从尾插对结果无影响。但是如果插入后整个字符串构成了回文串,那么从尾插就会影响到从头插的结果。因此维护两个头尾指针,其他的操作基本不变。注意如果当前插入操作的len[last]len[last]len[...
原创
0评论
0点赞
发布博客于 2 年前

Gym - 100548G (回文树,公共前缀的对数)

传送门题意:给你两个字符串s1,s2s1,s2s1,s2,求它们的公共前缀有多少对题解:对s1s1s1建一棵回文树,然后部分初始化,再在s1s1s1的基础上对s2s2s2建回文树。 然后对cntcntcnt乘积求和为什么可以这样?因为第一次建树的时候求出了s1s1s1在每个节点不同的回文子串个数,s2s2s2插入进来的时候,如果当前节点已经存在了回文子串,那么s2s2s2在当前节点的回文子...
原创
0评论
0点赞
发布博客于 2 年前

hdu 5157(回文树 num数组的应用)

传送门题意:求不相交回文子串的pair数题解: 回文树中, num[i]num[i]num[i]数组表示以iii为回文子串的结尾的回文串有多少个,那么对于每个num[i]num[i]num[i]我们求一次前缀和,得到的就是到iii为止的回文串个数。 那么我们对字符串正反各建一棵回文树,各求一次前缀和。答案就是两者乘积之和。#include<bits/stdc++.h>using...
原创
0评论
0点赞
发布博客于 2 年前

HYSBZ - 2160 (回文树)

传送门题意:给定一个字符串,找出该串中长度为奇数的最长kkk个子回文串,并且求出它们的乘积题解: 由于kkk很大,所以不能简单的sortsortsort用回文树处理出每个节点的回文串长度,并且记录下该节点下该回文串长度的串有多少个,然后快速幂模拟一下。注意细节!#include<bits/stdc++.h>using namespace std;typedef long ...
原创
0评论
0点赞
发布博客于 2 年前

HYSBZ 2565 最长双回文串

题意:找到一个最长回文子串,该子串能够分成两长度大于0的部分,每部分都是一个回文串题解:回文树维护一个以i为起点和终点的最长回文串长度数组即可#include<bits/stdc++.h>using namespace std;typedef long long ll;const int MAXN = 1e5+5;const int N = 27;struct Palin...
原创
0评论
0点赞
发布博客于 2 年前

2019牛客多校第四场 I-string (SA+PAM)

传送门用SA处理出S#rev(S)的不同子串个数P,减去包含了#的子串个数,这样非回文串的个数就被计算了两遍,而回文串个数只计算了一遍,因此再用PAM处理出S的本质不同的回文子串个数Q,答案就是(P+Q)/2#include<iostream>#include<algorithm>#include<cstdio>#include<stdio.h&...
原创
0评论
0点赞
发布博客于 2 年前

2019HDU多校 6609 Find the answer(权值线段树)

传送门赛中队友写的,由于最近一直做到主席树的题,结果一上来就搞了个主席树MLE笑死我了。题意:给出一组数,对于每个数a[i]a[i]a[i]求出最少删除 iii 前面多少个数使得前缀和小于等于mmm。题解:权值线段树维护以iii为右端点的前缀和以及数的个数。 每次查询最多可以取多少个数可以使得前缀和小于等于mmm,假设为cntcntcnt, 那么最后的答案就是 i−1−cnti-1-cnti...
原创
0评论
0点赞
发布博客于 2 年前

正整数幂次方递归表示

链接:https://ac.nowcoder.com/acm/contest/1069/L来源:牛客网任何一个正整数都可以用2的幂次方表示。例如:137=27+23+20同时约定方次用括号来表示,即ab可表示为a(b)。由此可知,137可表示为:2(7)+2(3)+2(0)进一步:7=22+2+20(21用2表示)3=2+20所以最后137可表示为:2(2(2)+2+2(0))...
原创
0评论
0点赞
发布博客于 2 年前

2019HDU多校6601 (主席树第k大,斐波拉契)

传送门题意:给出nnn个数,查询区间用这些数能组成的最大三角形的周长。题解:由于给出的数最大范围是1e91e91e9,而我们已经知道,斐波拉契数列中前两项之和等于第三项,这是构不成三角形的。所以考虑最坏情况,如果区间内的数刚好构成斐波拉契数列,那么最多到第44项就超过了数据范围,因此在44次循环前如果没有答案,即前44项刚好组成斐波拉契数列,那么后面就一定没有答案。所以用主席树求区间的第1...
原创
0评论
0点赞
发布博客于 2 年前

Codeforces Round #575 (Div. 3) F. K-th Path

题目地址题意:求出所有点对间距离的第kkk短路。题解:注意到虽然边的数量很多,但是kkk的数量很小,所以答案最差情况就在对边权排序后的第kkk短条,因此排序后重新建图跑一遍floydfloydfloyd处理出任意点间最短路。 然后就可以乱搞了。#include <iostream>#include <cstdio>#include <cstring>...
原创
0评论
0点赞
发布博客于 2 年前

2019ICPC南昌邀请赛正赛 G (Tarjan)

题目地址题意:有n个人和3种状态,每个人在不同的状态下有个能力值,两人在一种模式下比赛,能力值高的人获胜。询问某个人能否获胜。题解:Tarjan对每个状态进行缩点。先对每个状态的人按照能力值从大到小排序,能力值高的向能力值低的人连一条边。。然后跑一遍Tarjan,最后入度为0的联通分量里的所有点都能获胜#include<iostream>#include<algori...
原创
0评论
0点赞
发布博客于 2 年前

2019ICPC南昌邀请赛正赛 F(规律+树状数组维护动态区间异或和)

题目地址 这题的推导请看 其实就是网络赛的那题的弱化版(感谢这位大佬的博客)也可以打个表看看,虽然打表的话有点难看出规律然后很明显, 查询的区间长度为偶数的时候,答案永远是0,如果是奇数,那么查询的区间左端点和右端点一定是奇偶性相同。答案就是 下标间隔2的数进行异或。那么我们就可以维护两个树状数组,分别表示下标为奇数的数和下标为偶数的数的前缀异或和。然后注意一下细节#include...
原创
0评论
0点赞
发布博客于 2 年前

动态区间第k小(主席树套树状数组)

/* ***********************************************Author :pall_scallCreated Time :2019年07月23日 星期二 09时45分39秒File Name :acm.cpp************************************************ */#inclu...
原创
0评论
0点赞
发布博客于 2 年前

2019HDU多校一 E (最短路+最小割)

谁能想到签到题是个最短路+网络流??题目题意:给出一个图,切掉某些边后1~n的最短路变长,求割掉的最小价值题解:以1为起点跑一遍最短路以n为起点再跑一遍。将满足dis1[v]+dis2[u]+w=minroaddis1[v]+dis2[u]+w=minroaddis1[v]+dis2[u]+w=minroad的边建图跑个最小割就是答案。#include <bits/stdc++...
原创
0评论
0点赞
发布博客于 2 年前

2018 HDU多校一补题

A:hdu6298题意:x+y+z=nx+y+z=nx+y+z=nx∣nx|nx∣n , y∣ny|ny∣n , z∣nz|nz∣n求最大的xyzxyzxyz题解:因为x,y,zx,y,zx,y,z是n的因子,那么原式可以构造成 na+nb+nc=n\frac{n}{a}+\frac{n}{b}+\frac{n}{c} = nan​+bn​+cn​=n的形式然后很容易发现:a,b,...
原创
0评论
0点赞
发布博客于 2 年前

HDU 5919 Sequence II (暴力分块)

题目题目很恶心,题意不解释了。正解主席树,但是听说分块能过这题就试着就分块搞一搞。。最后将块大小改大后莽过去了。。(交了无数发差点号都没了)思路:基本分块后,预处理每个位置的数前一个出现的位置,因为要求中位数,那么事先对每个块进行sort排序下。处理这些的复杂度就是n∗块数n*块数n∗块数接下去查询的时候,先处理一下每个块内有多少数字有效,有效数字就是当前位置的数字上次出现的位置不在查询...
原创
0评论
0点赞
发布博客于 2 年前

2019牛客暑期多校训练营(第一场) A Equivalent Prefixes (单调队列)

题目题意:找到最大的点PPP,使得两个数组 aaa 和 bbb 在区间[1,P][1,P][1,P]的任意子区间中的最小值下标相同题解:对两个数组分别维护单调递增的单调队列。 每次插入后判断队列中的元素个数是否相同,不相同直接返回答案。这样做保证了两个数组对应区间单调性相同,子区间个数也相同。#include<bits/stdc++.h>using namespace std...
原创
0评论
0点赞
发布博客于 2 年前

hdu 1695莫比乌斯反演

题意:求区间[1,a],区间[1,b]中有多少对数满足gcd(i,j)=k,(2,2)只算一对 求区间[1,a] ,区间[1,b]中有多少对数满足gcd(i,j)=k,(2,2)只算一对 求区间[1,a],区间[1,b]中有多少对数满足gcd(i,j)=k,(2,2)只算一对题解:莫比乌斯反演基础设f(x)f(x)f(x) 为gcd(i,j)=xgcd(i,j)=xgcd(i,j)=...
原创
0评论
0点赞
发布博客于 2 年前

CodeForce 91B (单调队列+二分)

题意:nnn个数,求出a[i]a[i]a[i]后面最后一个小于a[i]a[i]a[i]的数与a[i]a[i]a[i]间的距离,如果没有小于a[i]a[i]a[i]的数则输出-1-1-1题解:从后往前遍历数组,单调队列维护一个递减的序列,每次判断将要插入的数与队尾的数的大小关系。如果当前插入的数不能保持队列的单调性则二分求答案,如果能保持,就说明这个数小于队列里的最小值,直接输出-1#incl...
原创
0评论
0点赞
发布博客于 2 年前

J - The more, The Better (树形dp+01背包)

hdu1561题意: nnn个点,每个点有个点权,给出一个有向树,求经过mmm个点获得的最大权值题解:将题目抽象成:背包容量为mmm,每个点权大小为111,价值即为点权,问装满背包的最大价值,就是一个背包问题。不同再与不是无序地拿。因为这棵树是以0为根(无价值)(隐含条件推出),其他结点111~nnn,所以共有n+1n+1n+1个点,所以背包总容量是 m+1m+1m+1。dp[i][j]...
原创
0评论
0点赞
发布博客于 2 年前

POJ3162 树形dp+单调队列

难在题意(代码5分钟读题两小时笑死)poj3162题意:n个点构成的一棵树,求出树上每个点能到达的最远距离,这样就有n个距离,然后从这n个距离中找出最长的区间,使得区间内的最大值−-−最小值 <= m题解:最远距离就是求两遍dfsdfsdfs,一遍求xxx节点往儿子方向走的最远距离,一遍求往父亲方向的最远距离。直接树形dp搞一下就好了。。然后求区间维护一个单调递增和一个单调递减的单...
原创
0评论
0点赞
发布博客于 2 年前

POJ 2152 Fire (树形dp)

转发一篇国家队论文。树形dp对这题讲的挺清楚的。#include<iostream>#include<algorithm>#include<cstdio>#include<stdio.h>#include<string.h>#include<queue>#include<cmath>#inclu...
原创
0评论
0点赞
发布博客于 2 年前

树形dp,树上任意两点间距离总和

建完树后,单独计算每条边对答案的贡献。贡献就是这条边被遍历的次数∗这条边的权值贡献就是这条边被遍历的次数*这条边的权值贡献就是这条边被遍历的次数∗这条边的权值对于一条边(如a−b)来说,端点a和b将这个树划分为两个部分,a部分子树上的点如果要连接到b部分,必定要经过a−b这条边,所以某条边被访问次数就是两部分子树端点之积,所以只需要dfs一遍这个树就一样每个点的子节点个数就行了对于一条边(如 ...
原创
0评论
0点赞
发布博客于 2 年前

POJ 3581 (后缀数组)

http://poj.org/problem?id=3581 (脑袋都要WA炸)题意:将一串数字分成3段,段内可以将数字逆序,分段后求字典序最小,题目保证第一个数字最大题意:将一串数字分成3段,段内可以将数字逆序,分段后求字典序最小,题目保证第一个数字最大题意:将一串数字分成3段,段内可以将数字逆序,分段后求字典序最小,题目保证第一个数字最大题解:首先没给出数据范围,先进行离散化。。离散化后最...
原创
0评论
0点赞
发布博客于 2 年前

SPOJ 694不同子串个数

求一个字符串的不同子串个数。后缀数组求出sa和height每一个后缀sa[i]贡献n+1−sa[i]个前缀,减去height[i]就是和前一个后缀相同的前缀个数,累加就是答案每一个后缀sa[i]贡献n+1-sa[i]个前缀,减去height[i]就是和前一个后缀相同的前缀个数,累加就是答案每一个后缀sa[i]贡献n+1−sa[i]个前缀,减去height[i]就是和前一个后缀相同的前缀个数,累...
原创
0评论
0点赞
发布博客于 2 年前