BZOJ2564: 集合的面积(闵可夫斯基和 凸包)
题意
题目链接
Sol
这个东西的学名应该叫“闵可夫斯基和”。就是合并两个凸包
首先我们先分别求出给出的两个多边形的凸包。合并的时候直接拿个双指针扫一下,每次选最凸的点就行了。
复杂度\(O(nlogn + n)\)
#include<bit tdc++.h>
#define ...[2019/2/15]
Android Java调用自己C++类库的实例讲解
Android Java 如何调用自己的 C++ 的类库
下面以 Java 调用 C++ 的加法运算函数为例,做简单说明。
(使用 Android Studio 3 编译)
首先编译 c++ 类库
创建独立目录存放 c++ 文件,例如 "app rc/main/cpp/add.cp...[2019/2/14]
洛谷P4007 小 Y 和恐怖的奴隶主(期望dp 矩阵乘法)洛谷P4007 小 Y 和恐怖的奴隶主(期望dp 矩阵乘法)
题意
题目链接
Sol
首先不难想到一种暴力dp,设\(f[i][a][b][c]\)表示还有\(i\)轮没打,场上有\(a\)个1血,\(b\)个2血,\(c\)个三血
发现状态数只有\(s = 166\)个,复杂度为\(O(ns)\)
矩乘优化一下复杂度为\(O(s^3 logn T)\...[2019/2/14]
bzoj3829 POI2014 FAR-FarmCraftbzoj3829 POI2014 FAR-FarmCraft
题目链接
思路
用\(f[i]\)表示完成第\(i\)棵子树所需要得时间。
考虑如果有两个子树\(a\)和\(b\),如果先去完成子树\(a\),那么对于花费得时间就是\(f[b] + siz[a] \times 2 + 1\)
所以如果有先遍历\(a\)更优秀的话。那么一定有\(f[b] + ...[2019/2/14]
CF341E Candies Game
题目链接
题意
有\(n\)个盒子,第\(i\)个盒子里面有\(a_i\)个糖果。每次选择两个盒子\(i,j\),假设\(a_i \le a_j\)。然后从第\(j\)个盒子中拿出\(a_i\)个糖果,放到第\(i\)个盒子里面(显然,如果\(a_i=a_j\),那么第\(j\)个盒子会变成空的...[2019/2/14]
36.QT-解决无边框界面拖动卡屏问题(附带源码)
1.简介
看到很多才学QT的人都会问为啥无边框拖动为啥会花屏?
那是因为你每次拖动的过程中都一直在调用move()函数让QT重新绘制界面,如果资源过大,就会导致当前图形还未绘制完,便又重新改变坐标了,从而导致花屏.
2.如何解决我们参考其它软件,比如QQ,浏览器等,可以看到我们如...[2019/2/14]
L1-033 出生年
题目:
以上是新浪微博中一奇葩贴:“我出生于1988年,直到25岁才遇到4个数字都不相同的年份。”也就是说,直到2013年才达到“4个数字都不相同”的要求。本题请你根据要求,自动填充“我出生于y年,直到x岁才遇到n个数字都不相同的年份”这句话。
输入格式:
输入在一行中给出出生年份y和目...[2019/2/14]
L1-034 点赞L1-034 点赞
题目:
上代码:
#include <iostream>
using namespace std;
int main() {
int arr[1000]={0};
int n,m,a;
cin>>n;
for(int i...[2019/2/14]
loj#2002. 「SDOI2017」序列计数(dp 矩阵乘法)loj#2002. 「SDOI2017」序列计数(dp 矩阵乘法)
题意
题目链接
Sol
质数的限制并没有什么卵用,直接容斥一下:答案 = 忽略质数总的方案 - 没有质数的方案
那么直接dp,设\(f[i][j]\)表示到第i个位置,当前和为j的方案数
\(f[i + 1][(j + k) \% p] += f[i][j]\)
矩乘优化一下。
#inc...[2019/2/14]
洛谷P3193 [HNOI2008]GT考试(dp 矩阵乘法)
题意
题目链接
Sol
设\(f[i][j]\)表示枚举到位置串的第i位,当前与未知串的第j位匹配,那么我们只要保证在转移的时候永远不会匹配即可
预处理出已知串的每个位置加上某个字符后能转移到的位置,矩阵快速幂优化一下
复杂度\(O(M^3 \log n)\)
#include<bi...[2019/2/14]
Treap学习笔记
Treap详解
Treap=Tree+Heap
Treap中每个节点有2个值,其中一个满足二叉查找树的性质,一个满足大根堆的性质。把满足二叉查找树性质的值称作data,把满足大根堆性质的值称作value。 对于Treap来说,当前节点的data值大于左儿子,小于右儿子。当前节点的value值小于儿...[2019/2/14]
bzoj4818 SDOI2017 序列计数
题目链接
思路
先考虑暴力\(dp\),\(f[i][j]\)表示前\(i\)个数,数字之和模\(P\)余\(j\)的方案数。
我们先不考虑必须有质数这个条件,先统计出全部方案。然后再减去没有质数的方案就行了。
那么就有\(f[i + 1][(j + k) \% p] += f[i][j](1\...[2019/2/14]
L1-027 出租L1-027 出租
题目:
下面是新浪微博上曾经很火的一张图: 一时间网上一片求救声,急问这个怎么破。其实这段代码很简单,index数组就是arr数组的下标,index[0]=2 对应 arr[2]=1,index[1]=0 对应 arr[0]=8,index[2]=3 对应 arr[3]=0,以此类推…… 很容易...[2019/2/13]
bzoj2007 NOI2010 海拔(对偶图)
题目链接
80分(最小割)思路
先考虑如果没有题目中东南角为\(1\)那个限制的话会怎样。
那么只要让每个点的海拔都是\(0\)就行了。这样不论怎样走,最后的答案都是0.
然后再考虑那个东南角为\(1\)的限制表达了什么。其实说明了最后的答案一定是右下角一部分海拔全部为\(1\),左上角一部分海...[2019/2/13]
L1-030 一帮一
题目:
“一帮一学习小组”是中小学中常见的学习组织方式,老师把学习成绩靠前的学生跟学习成绩靠后的学生排在一组。本题就请你编写程序帮助老师自动完成这个分配工作,即在得到全班学生的排名后,在当前尚未分组的学生中,将名次最靠前的学生与名次最靠后的异性学生分为一组。
输入格式:
输入第一行给出正偶数...[2019/2/13]
三种方法为QLineEdit添加清除内容按钮
很多时候我们会发现输入的一长串内容不得不全部删除重新输入,这时比起一直按着退格键不放一个清除内容按钮更受欢迎。
今天我将介绍三种为QLineEdit添加清除内容按钮的方法,其中两种方法有较强的功能针对性,另一种方法则是通用的,不仅可以用来实现清除输入内容,还可以扩展出其他功能。
本文索引
...[2019/2/13]
BZOJ2705: [SDOI2012]Longge的问题(欧拉函数)
题意
题目链接
Sol
开始用反演推发现不会求\(\mu(k)\)慌的一批
退了两步发现只要求个欧拉函数就行了
\(ans = \sum_{d | n} d \phi(\frac{n}{d})\)
理论上来说复杂度是\(O(n)\)的,但是\(d\)的值十分有限。在\(2^{32}\)内最...[2019/2/12]
BZOJ2820: YY的GCD(反演)
题解
题意
题目链接
Sol
反演套路题。。
不多说了,就是先枚举一个质数,再枚举一个约数然后反演一下。
最后可以化成这样子
\[\sum_{i = 1}^n \frac{n}{k} \frac{n}{k} \sum_{p \in P, p | k} \mu(\frac{K}{p})\]
...[2019/2/12]
L1-025 正整数A+B
题目:
题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000]。稍微有点麻烦的是,输入并不保证是两个正整数。
输入格式:
输入在一行给出A和B,其间以空格分开。问题是A和B不一定是满足要求的正整数,有时候可能是超出范围的数字、负数、带小数点的实数、甚至是一堆乱码。注...[2019/2/12]
洛谷P4396 [AHOI2013]作业(树套树)洛谷P4396 [AHOI2013]作业(树套树)
题意
题目链接
Sol
为什么一堆分块呀。。三维数点不应该是套路离线/可持久化+树套树么。。
亲测树状数组套权值线段树可过
复杂度\(O(nlog^2n)\),空间\(O(nlogn)\)(离线)
#include<bit tdc++.h>
#define Pair pair...[2019/2/11]
bzoj1565 植物大战僵尸bzoj1565 植物大战僵尸
题目链接
思路
如果想消灭掉一个植物,那么必须先消灭掉左右能保护这个植物的植物。这就成了最大权闭合子图的模板题了。
有两个需要注意的地方。
第一个就是,能保护当前植物的植物还有当前植物右面的所有植物。
第二个就是,在环里的植物或者是被在环里的植物所保护的植物是无法消灭的。
所以先拓扑一下,找出所...[2019/2/11]
01分数规划
问题
\(01\)分数规划是用来解决这样一类问题
有\(n\)个物品,每个物品都有一个属性\(p\)和\(w\)。要从中选出\(K\)个物品使得\(\frac{\sum\limits_{i=1}^Kp_i}{\sum\limits_{i=1}^Kw_i}\)最大,输出最大值。要求是个分数
思...[2019/2/11]
cf896C. Willem, Chtholly and Seniorious(ODT)
题意
题目链接
Sol
ODT板子题。就是用set维护连续段的大暴力。。
然鹅我抄的板子本题RE提交AC??。。
具体来说,用50 50 658073485 946088556这个数据测试下面的代码,然后在79行停住,看一下bg和i的值会发生神奇的事情。。
问题已解决,确实是那位博主写错了...[2019/2/11]
洛谷P2572 [SCOI2010]序列操作(ODT)
题解
题意
题目链接
Sol
ODT板子题.....
luogu-judger-enable-o2
#include<bit tdc++.h>
#define LL long long
#define Fin(x) freopen(#x".in", &qu...[2019/2/11]
洛谷P4344 [SHOI2015]脑洞治疗仪(ODT)
题意
题目链接
Sol
ODT板子题。
操作1直接拆区间就行。
#include<bit tdc++.h>
#define fi first
#define se second
const int MAXN = 2e5 + 10;
using namespace std;
in...[2019/2/11]
codechef QCHEF(不删除莫队)
题意
题目链接
给出长度为\(n\)的序列,每次询问区间\([l, r]\),要求最大化
\(max |x ? y| : L_i ≤ x, y ≤ R_i and A_x = A_y\)
Sol
标算神仙的一批看不懂。
维护好每个数出现的左右位置之后直接上不删除莫队就行了
#includ...[2019/2/11]
洛谷P3987 我永远喜欢珂朵莉~(set 树状数组)
题意
题目链接
Sol
不会卡常,自愧不如。下面的代码只有66分。我实在懒得手写平衡树了。。
思路比较直观:拿个set维护每个数出现的位置,再写个线段树维护区间和
#include<bit tdc++.h>
#define LL long long
const int MAXN...[2019/2/11]
洛谷P2447 [SDOI2010]外星千足虫(异或方程组)
题意
题目链接
Sol
异或高斯消元的板子题。
bitset优化一下,复杂度\(O(\frac{nm}{32})\)
找最优解可以考虑高斯消元的过程,因为异或的特殊性质,每次向下找的时候找到第一个1然后交换就行,这样显然是最优的
#include<bit tdc++.h>
us...[2019/2/11]
线段树
线段树
线段树的每一个节点都代表一段 区间
线段树用于维护符合结合律的的信息 (比如区间max/min、sum、xor之类的)
线段树 在最坏的情况下效率低于分块(大常数)
关于线段树的 建树与维护
线段树 是一颗二叉树,对于每个父亲节点(编号i)存在两个儿子,编号分别为2i和2i+1....[2019/2/11]
BZOJ4259: 残缺的字符串(FFT 字符串匹配)BZOJ4259: 残缺的字符串(FFT 字符串匹配)
题意
题目链接
Sol
知道FFT能做字符串匹配的话这就是个裸题了吧。。
考虑把B翻转过来,如果\(\sum_{k = 0}^M (B_{i - k} - A_k)^2 * B_{i-k}*A_k = 0\)
那么说明能匹配。然后拆开三波FFT就行了
/*
*/
#include<...[2019/2/11]
L1-016. 查验身份证
题目:
一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:
首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:...[2019/2/11]
日志组件优化报告
背景
目前项目组日志组件存在以下问题:
1 日志文件每写一次日志就打开关闭一次,存在性能浪费
2 日志里面获取时间需要调用localtime、stat,在频繁调用时该函数消耗cpu比较多
3 日志组件获取环境变量时未判断是否成功,如果环境变量没设置会引起程序core
4 日志组件在写日志时...[2019/2/11]
上下界可行流
无源汇上下界可行流
题目
给出一个有向图。每条边有流量上界和下界,问是否存在一中流量分配方案,使得每个点流量守恒(即流入量=流出量)
思路
解决这种问题的主体思路就是在初始流的基础上不断添加流量,使得满足流量守恒。
初始流很显然应该是每条边流量的下界。
但是这样并不满足流量守恒。然后考虑添加...[2019/2/11]
[P5162] WD与积木
每种堆法(理解成名次序列,举例3,3,8,2和7,7,100,2都对应2,2,1,3这个名次序列)等概率出现;题目中“两种堆法不同当且仅当某个积木在两种堆法中处于不同的层中”可见这是个组合问题,于是设一个名次的生成函数F(x)=sum i=1->inf 1*x^i/(i!) 。因为F(x)的...[2019/2/11]
L1-017 到底有多二L1-017 到底有多二
题目:
知识点for me:
1、计算res时要先把num强制转换成浮点型,否则两个整形相除会自动转换成整形保存。最开始没加(float),结果res一直是0.00000.
2、输出百分号:%%
3、已经好几次忘记把不是int型的数字-‘0’后再使用了。
上...[2019/2/11]
有源汇上下界最大(小)流
有源汇上下界最大流
例题
loj116
给出一个有源汇点的有向图。每条边有最大流量和最小流量。现在需要求出从源点到汇点的最大流可以是多少。
前置知识
上下界可行流
思路
先回顾有源汇上下界可行流干了些什么。
其实可行流就是找到了一种满足流量下界的方案。
在满足了流量下界之后,可以发现还有...[2019/2/11]
poj1637 Sightseeing tour(混合图欧拉回路)
题目链接
题意
给出一个混合图(有无向边,也有有向边),问能否通过确定无向边的方向,使得该图形成欧拉回路。
思路
这是一道混合图欧拉回路的模板题。
一张图要满足有欧拉回路,必须满足每个点的度数为偶数。
对于这道题,我们先随便给无向边定个向。这时能够形成欧拉回路的必须条件就是每个点的入度和出度之...[2019/2/11]
L1-020 帅到没朋友
题目:
输入格式:
输入第一行给出一个正整数N(≤100),是已知朋友圈的个数;随后N行,每行首先给出一个正整数K(≤1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;之后给出一个正整数M(≤1...[2019/2/11]
L1-023 输出GPLT
题目:
思路:
用四个整形变量统计四个字母出现的个数,按GPLT顺序输出,每输出一个字母,这个字母的个数就减一,为0了就不输出。一开始我把第二个循环里面的if都写成else if了,结果输出GGGGGPPLLLLLLTTT。。。因为if和else if 只会执行其中之...[2019/2/11]
QT4.8.6之qt.network.ssl: QSslSocket: cannot call unresolved function ERR_get_error
想试着用qt写一个爬虫,编译的时候报如下错误
qt.network. l: QSslSocket: cannot call unresolved function ERR_get_error
qt.network. l: QSslSocket: cannot call unresolved f...[2019/2/11]
最小化的测试套件minimal_test的使用
1:需要包含文件文#include <boost/test/minimal_test.hpp>
2:minimal_test内部实现了main(), 因此无需自己编写main()函数, 只要实现test_main()即可
参考资料:http: www.cnblogs...[2019/2/1]
洛谷P3586 [POI2015]LOG(贪心 权值线段树)
题意
题目链接
Sol
显然整个序列的形态对询问没什么影响
设权值\(>=s\)的有\(k\)个。
我们可以让这些数每次都被选择
那么剩下的数,假设值为\(a_i\)次,则可以\(a_i\)次被选择
一个显然的思路是每次选最大的C个
那么只需要判断\(\sum a_i >=...[2019/2/1]
算法训练 最大的算式
问题描述
题目很简单,给出N个数字,不改变它们的相对位置,在中间加入K个乘号和N-K-1个加号,(括号随便加)使最终结果尽量大。因为乘号和加号一共就是N-1个了,所以恰好每两个相邻数字之间都有一个符号。例如: N=5,K=2,5个数字分别为1、2、3、4、5,可以加成: 1*2*...[2019/2/1]
泉五培训Day4
T1 收果子
题目
【题目描述】
有一个果园,有n棵果树依次排成一排,其中已知第 i 棵果树上结了ai个果子。现在要按照果树编号顺序依次收果子,对于一个能装v个果树的果篮,收果子从第1棵果树开始,如果果篮的剩余容积大于等于当前果树所结的果子,那么就可以...[2019/2/1]
倒排表数据结构、通配符查询、拼写纠正详解
目录:
Dictionary Data Structure 词典数据结构
Wild-Card Query 通配符查询
Spelling Correction 拼写纠正
搜索引擎里的dictionary ...[2019/2/1]
51nod 1298 圆与三角形——计算几何
题目链接:http: www.51nod.com/Challenge/Problem.html#!#problemId=1298
转化成判断三条线段和圆是否??相交就行了
1 #include<cstdio>
2 using namespace std;
3
...[2019/2/1]
BZOJ4827: [Hnoi2017]礼物(FFT 二次函数)
题意
题目链接
Sol
越来越菜了。。裸的FFT写了1h。。
思路比较简单,直接把
\(\sum (x_i - y_i + c)^2\)
拆开
发现能提出一坨东西,然后与c有关的部分是关于C的二次函数可以直接算最优取值
剩下的要求的就是\(max (\sum x_i y_i)\)
画...[2019/2/1]
数据上报业务流程总结
一:加密&解密
#include "open l/aes.h" #include "open l/pem.h" #include "open l/err.h" #include "open l/rsa.h" #include "open l/md5.h" #pragma comment(...[2019/2/1]
命名空间
如果是个有心的人都会问命名空间到底是干什么的?
其实简单的来说明明空间就是用来区别相似的东西的,就比如在两个类库中都有一个叫add的函数,如果不加以区分计算机怎么知道你到底用哪个库里面的add函数;这就是明明空间的作用。
不要把命...[2019/1/31]
时间复杂度一定的算法能处理的数据规模
ACM入门必备,根据数量级别选择合适的算法才能顺利AC哟!
复杂度
数量级
最大规模
O(logN)
>>10^20
很大
O(N^1/2)
10^12
10^14
O(N)
10^6...[2019/1/31]