
其他
一个莫得感情的代码机器
愿你有故乡
展开
-
Pycharm 字体大小调整
Pycharm 字体大小调整一 pycharm字体滚轮放大的设置File —>setting —> Keymap —>在搜寻框中输入increase —>Increase Font Size(双击) —> 在弹出的对话框中选择Add Mouse Shortcut在弹出的对话框中同时按住ctrl键和鼠标滚轮向上滑。缩小的设置File —>s...原创 2019-10-16 14:42:54 · 266 阅读 · 0 评论 -
HDU 6058 Kanade's sum 逆序求第k大
传送门:HTTP://acm.hdu.edu.cn/showproblem.php PID = 6058题意:给你一个1-n的排列求所有自子区间的第K大的和思路:从大到小插入位置维护当前数位置以及当前数前面比他大的个数及位置后面比他大的及位置所以k = min(n,80)链表维护在保证区间有k-1个比当前大的情况计算贡献手写链表维护位置码:#include<bits/...原创 2017-08-02 09:29:49 · 221 阅读 · 0 评论 -
HDU - 3530 Subsequence 单调队列
题意:给你一个长度为n的数列,要求一个子区间,使得区间的最大值与最小值的差s满足,m <= s <= k,求满足条件的最长子区间 思路:维护我位置前的最值与最小值的位置取最远的区间值更新ans用两个单调队列维护i位置前的递增递减序列ACcode:#include<iostream>#includ...原创 2017-01-16 21:15:29 · 313 阅读 · 0 评论 -
HDU - 4122 Alice's mooncake shop 单调队列
题字:给你n份订单m小时制作yuebing n行订单的时间(月日年小时)和需要月饼的数量r 每个月饼的保质期为t放冰箱每小时需要s的代价 给出0-m-1每小时制作月饼的代价 求完成所有月饼所需的代价思路:将订单的时间先换算成小时 根据米个小时的不同加葛 第i个...原创 2017-01-16 21:37:25 · 339 阅读 · 0 评论 -
HDU 1711 Number Sequence KMP
题意:有Ť组测试样例给你两个序列A,B的长度及其值求乙序列包含与阿中哪个连续段有则输出靠左的位置下标(从一开始),如果没有输出-1ACcode:#include<bits/stdc++.h>using namespace std;const int maxn = 1e7+10;int nextx[maxn];int A[maxn],B[maxn];...原创 2017-04-10 20:07:58 · 174 阅读 · 0 评论 -
HDU 2203 亲和串 KMP
题意:如题技巧 由于s1串是环形则将s1串扩大2倍 及 如123 串则 变为123123裸KMPACcode:#include<bits/stdc++.h>using namespace std;const int maxn = 1e6+10;char A[maxn&...原创 2017-04-10 20:29:58 · 220 阅读 · 0 评论 -
HDU 2594 Simpsons’ Hidden Talents KMP
题意串A字符串的最长前缀是B字符串的最长前缀思路:利用next数组的性质123 | 123对称将两个字符串连接起来为了防止粘连即aaa aa这种情况在A字符后添加特俗字符ACcode:#include<bits/stdc++.h>using namespace std;const i...原创 2017-04-11 19:38:00 · 164 阅读 · 0 评论 -
HDU 4300 Clairewd’s message KMP
题意:给你Ť组样例给你一串长度为26的英文小写字母英文密码转换表给你一个串字符串包含密文+明文明文可能缺失,密文保证完整求最短的字符串符合密文+明文(密文==明文)思路:从len / 2开始利用next数组的性质求后(len + 1)/ 2字符串的最长后缀与前面匹配A...原创 2017-04-12 16:43:56 · 242 阅读 · 0 评论 -
CSU - 1812 三角形和矩形
http://acm.csu.edu.cn/csuoj/problemset/problem?pid=1812注意:点逆序可以用半平面交或者多边形面积交半平面交(转至http://blog.youkuaiyun.com/a664607530/article/details/52434724)#include <bits/stdc++.h>using namespace std...原创 2017-06-01 10:36:11 · 269 阅读 · 0 评论 -
2268: SB_cyh and his BST two pb_ds
https://www.oj.swust.edu.cn/problem/show/2268pb_ds库#include<bits/stdc++.h>#include<ext/pb_ds/assoc_container.hpp>#include<tr1/unordered_map>using namespace std;using nam...原创 2017-06-10 11:04:55 · 348 阅读 · 0 评论 -
POJ - 1651 Multiplication Puzzle
题意:给你ñ张卡牌你有N-2次操作 每次可以抽取一张卡牌(不能是第一张和最后一张) 抽取的代价为当前卡牌和相邻卡牌的乘积求最小的费用思路:抽取一张卡牌的费用为当前卡牌和相邻卡牌的乘积假设【我】【Ĵ】区间内(不包括I,J)都被抽取了 则i,j可以...原创 2017-01-12 21:30:22 · 481 阅读 · 0 评论 -
POJ - 2955 Brackets 区间DP
题意:给你一串只包含'(',')','['和']'的字符串 求所有()和【】都匹配的增加字符最少的字符串个数思路:由于一个字符最后会完全匹配两个已经相连的区间没有约束条件可以直接连接不需要任何代价所以转移方程为DP [i] [j] = DP [I] [K] + DP [K + 1] [j]的;这里给出正向和反向...原创 2017-01-12 21:22:02 · 232 阅读 · 0 评论 -
POJ - 1141 Brackets Sequence
题意:给你一串只包含'(',')','['和']'的字符串 求所有()和【】都匹配的增加字符最少的字符串 假如有多个输出任意一个思路:由于一个字符最后会完全匹配 两个已经相连的区间没有约束条件可以直接连接不需要任何代价 所以转移方程为DP [i] [j] = DP [I] [K] + DP [K +...原创 2017-01-12 21:16:27 · 241 阅读 · 0 评论 -
POJ - 3280 Cheapest Palindrome
题意:给你一个由Ñ种小写字母组成长度为米的字符串 给出每种字符增加的代价和减小的代价 求出把给定字符串变为回文串的最小代价思路:这个题首先要注意 1代价对于一个回文串增加一个字符变为回文串和减小串中的一个字符变为回文串等效所以可以预处理字符的最小代价 2对于一个回文区间只有增加两个字符串或者减小两个字...原创 2017-01-12 21:00:58 · 198 阅读 · 0 评论 -
POJ - 1185 炮兵阵地
题意:如题思路:由于相同行列的相邻两个格子都不能放所以用二进制模拟由于相邻两个的状态比较少所以有效的状可以打表出来优化时间ACcode:#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;...原创 2017-01-11 20:22:12 · 231 阅读 · 0 评论 -
BZOJ 2038: [2009国家集训队]小Z的袜子(hose) 莫队算法
传送门 :http://www.lydsy.com/JudgeOnline/problem.php?id=2038题意:略思路:这类没有修改的区间乱搞问题 很容易想到莫队 注意:map进行计数会TACcode:#include<bits/stdc++.h>using namespace std;typedef long long LL;const int ...原创 2017-08-07 20:41:31 · 238 阅读 · 0 评论 -
HDU 6092 Rikka with Subset 反向DP
传送门 http://acm.hdu.edu.cn/showproblem.php?pid=6092题意:求一个序列A B[i] == A的所有子集和 == i 的方案数不难发现 加入一个数x dp[i]+=dp[i-x] 反向操作下 ACcode:#include<bits/stdc++.h>using namespace std;typed...原创 2017-08-08 20:57:38 · 196 阅读 · 0 评论 -
POJ 1991 Turning in Homework 区间DP
传送门 题意:起点为0,路径长度为L,终点为k,s位置的物体在时间>=t时才出现 求取完所有物品回到k的时间 思路:很巧妙的区间DP 对位置和时间排序 对与一个i-j未区间(即使有点可以取也不影响结果),每次去左右两个端点,这样就减少了无意义来回,得到最优的转移,思路很巧妙。 code#include<cstdio>#include<cstring>#include<a原创 2017-09-09 21:15:06 · 205 阅读 · 0 评论 -
BZOJ 3196: Tyvj 1730 二逼平衡树 窒息的操作
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=3196 题意: 1.查询k在区间内的排名 2.查询区间内排名为k的值 3.修改某一位值上的数值 4.查询k在区间内的前驱(前驱定义为小于x,且最大的数) 5.查询k在区间内的后继(后继定义为大于x,且最小的数) 思路:窒息的操作 code:#include<bits/stdc++原创 2017-08-23 10:02:22 · 243 阅读 · 0 评论 -
HDU 6156 Palindrome Function 数位DP
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6156 题意;给你L,R,l,r 求L-R区间的数的x进制 (l<=x<=r)的回文串的数量*进制+这个进制不是回文的数量 思路:计数类DP->数位 code:#include<bits/stdc++.h>using namespace std;typedef long long LL;LL d原创 2017-08-20 19:15:12 · 217 阅读 · 0 评论 -
HDU 6153 A Secret KMP
传送门:HTTP://acm.hdu.edu.cn/showproblem.php PID = 6153题意:给你两个串a,b求b串的所有后缀在a串的出现次数*后缀串长度和思路:反转两个串把后缀变前缀kmp统计前缀注意kmp统计时ababab时经历会存在大前缀串的前缀是反转b的前缀需要单独统计码:#include<bits/stdc++...原创 2017-08-20 10:35:14 · 202 阅读 · 0 评论 -
HDU - 6129 Just do it 找规律
传送门: http://acm.hdu.edu.cn/showproblem.php?pid=6129题意:求a序列后m次xor前缀和思路:通过对1位置对每个位置的贡献打表发现第一次 贡献为 1 1 1 1 1 1 1 1 1 1 1第二次 贡献为 1 0 1 0 1 0 1 0 1 0 1 0第四次 贡献为 1 3个0 1 3个0 1 3个0 1 3个0第八次 贡献为 1...原创 2017-08-15 21:12:18 · 858 阅读 · 2 评论 -
BZOJ 2243: [SDOI2011]染色 树链剖分 区间合并
题意:如图1所示,将节点一到节点b路径上所有点都染成颜色℃;2,询问节点一个到节点b路径上的颜色段数量(连续相同颜色被认为是同一段),如“112221”由3段组成:“11”,“222”和“1”。思路:很明显需要一总数据结构来维护颜色 只是统计答案时我门需要知道这段区间与下一段区间的联系所以需要区间合并 对于不在重链上的点我们看他与他的父亲颜色是否一样...原创 2017-08-14 19:06:25 · 216 阅读 · 0 评论 -
BZOJ 3224: Tyvj 1728 普通平衡树 pb_ds
传送门:HTTP://www.lydsy.com/JudgeOnline/problem.php ID = 3224注意老版本null_mapped_type新版本null_type码:/*1. 插入x数2. 删除x数(若有多个相同的数,因只删除一个)3. 查询x数的排名(若有多个相同的数,因输出最小的排名)4. 查询排名为x的数5. 求x的前驱(前驱定义为小于x,且...原创 2017-08-14 11:06:57 · 386 阅读 · 0 评论 -
HDU 6119 小小粉丝度度熊 双指针
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6119题意:给你n个人区间 可能重合包含 给你m次机会每次可以填补一个点 求最大连续长度思路:数据量较大 但是把区间处理后发现 符合双指针的连续性注意:处理连续重合区间code:#include<bits/stdc++.h>using namespace std;...原创 2017-08-13 20:22:39 · 355 阅读 · 0 评论 -
HDU -5618 Jam's problem again cdq分治
传送门:HTTP://acm.hdu.edu.cn/showproblem.php PID = 5618题意:给你n个点的坐标x,y,z求xi <= x && yi <= y && zi <= z的个数有重点21 1 11 1 111思路:cdq分治求三维偏序对l-mid区间添加mid + 1,r区间查找码:...原创 2017-08-13 17:19:28 · 316 阅读 · 0 评论 -
BZOJ 1211: [HNOI2004]树的计数
传送门:HTTP://www.lydsy.com/JudgeOnline/problem.php ID = 1211题意:给你n个点和每个点的度求符合这些结构树的方案数思路:参照http://blog.youkuaiyun.com/sinat_27410769/article/details/46596739这里直接给出公式sum = sigma d [i] -1 ans = sum!/(d [1...原创 2017-08-12 14:57:29 · 218 阅读 · 0 评论 -
BZOJ 2152: 聪聪可可 树分治
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2152题意:求树上任意两点(两点可以相同)路径长度%3 == 0 的方案数思路:关于树上路径统计方案 首先就想(tao)到(lu)树分治code://统计树上路径的方案数目#include<bits/stdc++.h>using namespace st...原创 2017-08-10 09:21:35 · 211 阅读 · 0 评论 -
BZOJ 2464: 中山市选[2009]小明的游戏 简单搜索
传送门:HTTP://www.lydsy.com/JudgeOnline/problem.php ID = 2464简单搜索:把每一块分好后搜索就可以了码:#include<bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 510;const int inf=510...原创 2017-08-09 20:54:19 · 260 阅读 · 0 评论 -
BZOJ 1854: [Scoi2010]游戏 贪心+并查集
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1854思路:求最大的连击所以我们必须保证最小的不会中断 所以我们对于点 优先去取小的那一个 并建立一条边指向最大的 并查集维护每一条指向 让得到的答案最小的满足下用尽量多的点PS:想了很久感觉像贪心没过 但是没想到并查集能维护出这种贪心思路 并查集神用途。...原创 2017-08-09 19:48:58 · 197 阅读 · 0 评论 -
HDU 6085 Rikka with Candies 压位 bitset区间提取
传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6085题意:求A卷积B的余数为k的方案数思路:对于一个模数数B 0->B-1的余数 == B->2*B-1 所以可以进行区间异或 得到答案由于只判断奇偶 所以这题可以bits优化 关键就是区间提取 bitset不支持区间提取 所以需要手动提取比赛想到过bitset 但是...原创 2017-08-09 16:56:45 · 239 阅读 · 0 评论 -
POJ - 3279 Fliptile
题意:给你一个n*m的矩阵问将那些点进行多少次操作可以将矩阵全部变为0输出最小的次数次数相同输出字典序最小的一个否则输出IMPOSSIBLE思路: 由于要把所有的点变为0 而一个点最多能影响上一个点 所以假如上一个点为1 则当前点必选变 为0则不能bian 第一行的状态确定了后面所有的点的...原创 2017-01-11 20:15:05 · 444 阅读 · 0 评论 -
POJ - 1038 Bugs Integrated, Inc. 三进制状压
题意 给你一个m*n的矩阵 矩阵中有k个坏点 给出k个坏点的坐标 求最多能分出多少个2*3的小矩形思路:开始想用二进制模拟上一排和上上排的状态 MLE 其实对于一个点只需要关心上一个点是否空 上上个点是否为空 假如上一个对点不为空 则上上个点无论为什么状态都不可用 所以用三进制模拟 ...原创 2017-01-11 19:39:35 · 249 阅读 · 0 评论 -
POJ - 2411 Mondriaan's Dream 状压
样本输出题意:给你一个N*M的矩阵 问将1*2 的方块 充满整个矩阵一共有多少种方法思路: 1*2 的矩阵只有 两种方法 横着 和 竖着 枚举每一行的状态 1 代表这个这个格子被占用 对于一个格子只有放与不放 两种状态 所以用二进制表示 我们要保证每一行被占满 所以当上一行没有被站满 我们当前的格子只能竖着放...原创 2017-01-11 19:24:20 · 194 阅读 · 0 评论 -
HDU 1166 敌兵布阵 树状数组 区间求和
思路:单点更新区间求和树状数组(只用到区间求和树状数组更简单方便)AC代码;#include <iostream>#include <cstring>#include <algorithm>#include <cstdio>using namespace std;#define N 50010int dp[N], n;int ...原创 2016-07-28 10:26:16 · 313 阅读 · 0 评论 -
HDU 2492 Ping pong 树状数组
题字:有n个人要进行乒乓球比赛每一个人都一个技术值,现在要求进行一场比赛,三个人,裁判的技术值在两个人的中间,位置也在两个人的中间,问一共可以进行这种比赛多少次。思路:采用树状数组,先从左到右计算左边大的个数,左边小的个数,再从右到做计算右边大和小的个数,然后交叉相乘取和就可以了注意:数据较大建议使用long longAC代码:#include<iostream>...原创 2016-07-28 10:16:32 · 202 阅读 · 0 评论 -
POJ 2182 Lost Cows(线段树,单点更新)
题意: 有N头牛,编号为1~N ,乱序排成一列,现在已知每头牛前面有多少头牛比他的编号小,求排队后从前往后数,输出每头牛的编号注意: 第一头前面没有牛 所以初始值为0 思路: 最后一头牛为 a 则 牛的序列为 a+1 去掉编号 a+1 再从后往前推 (其实这题数据很水 暴力也能过 暴力出奇迹 2333) AC 代码;#include <...原创 2016-07-28 10:04:26 · 225 阅读 · 0 评论 -
HDU 1541 Stars (树状数组 区间求和)
题意:给出一些星星的横坐标和纵坐标,而且星星的纵坐标递增排列,如果纵坐标相等,则横坐标按递增排列,任意两颗星星不会重合。每个星星有个等级=左下角的星星数量分析:树状数组。星的纵坐标递增排列,如果纵坐标相等,则横坐标按递增排列所以只利用x就可以进行计数了,如果给出一个星星的坐标为(x,y),那么它的等级就等于前面[1,x]中区间内的点的个数AC代码:#include <io...原创 2016-07-28 10:03:02 · 471 阅读 · 0 评论 -
POJ 3264 Balanced Lineup (RMQ)
题意: 给你一个1-N的区间 进行Q次询问 求l-r 区间内的 最大值-最小值 的差思路: 因为N很大所以暴力做会超时 所以我们可以考虑线段树和RMQAC代码:#include<iostream>#include<algorithm>#include<cstring>#include<cstdio>#inc...原创 2016-07-28 09:20:35 · 206 阅读 · 0 评论 -
HDU1540 Tunnel Warfare (线段树区间合并)
题字:有n个连续村庄D代表破坏村庄,R代表修复一个被破坏的村庄,Q代表询问包括x在内的最大连续村庄是的长度思路:在线段树的区间内,我们要用三个变量记录l开始的连续区间长度r截至的连续区间长度lr区间内最大连续区间长度更新时最大区间长度等于左右区间的最大连续区间的最大值与右子树的左连续区间+左子树的右连续区间的最大值查询时注意查询节点左右区间分界处的连续区间内#include...原创 2016-07-27 23:11:46 · 208 阅读 · 0 评论