05 2020 档案

【思维】单调栈+dp——2020 联想杯 G
摘要:/* 用一个递增单调栈维护b[1..i-1] 将bi更新进单调栈,栈顶第二个元素+1 到bi区间的最小值都改成bi,然后求个和就行 */ #include<bits/stdc++.h> using namespace std; #define ll long long #define mod 998 阅读全文

posted @ 2020-05-30 21:34 zsben 阅读(171) 评论(0) 推荐(0) 编辑

【经典】【模板】扫描线+求平面内相交线段+二分——cf1359F
摘要:首先转化为二分答案,在时间t内有两车相撞,等价于有两辆车在t时间内运动的轨迹相交 所以问题变成判断一个平面内是否存在两条相交线段,经典问题 bool operator<(const line &a,const line &b){//set内部的排列方式是左端点+斜率 db x=max(min(a.p 阅读全文

posted @ 2020-05-29 19:07 zsben 阅读(250) 评论(0) 推荐(0) 编辑

dp——cf1357D
摘要:/* dp[i][j]表示以i结尾,前段最大值j */ #include<bits/stdc++.h> using namespace std; #define N 200005 #define B 30 int n,a[N],dp[N][100]; int main(){ cin>>n; for( 阅读全文

posted @ 2020-05-29 11:21 zsben 阅读(132) 评论(0) 推荐(0) 编辑

组合数学+结论——cf1359E
摘要:/* 求sum{C(n/i,k)} */ #include<bits/stdc++.h> using namespace std; #define N 500005 #define mod 998244353 #define ll long long ll n,k,ans; int F[N], Fi 阅读全文

posted @ 2020-05-29 11:20 zsben 阅读(218) 评论(0) 推荐(0) 编辑

【模拟】分类讨论大模拟+数论——cf1358F
摘要:写吐了。。 /* n=1:直接判定是否相等 n=2:判定能否从(b1,b2)变成(a1,a2) 由于暴力会t,所以改为取模(由取模向前回退操作是可以证明正确性的) 因为b2=a1+a2,所以对于b2来说一定经历了一连串的P操作,这一连串P操作的回退可以直接用b2%b1来代替 n>=3: 暴力模拟从b 阅读全文

posted @ 2020-05-28 15:16 zsben 阅读(184) 评论(0) 推荐(0) 编辑

【思维】前缀和——cf1358E
摘要:为啥我自己用后缀和来做就有问题。。 感觉没道理错啊 用前缀一次就过了 /* a1,a2,a3...x,x,x,x,... */ #include<bits/stdc++.h> using namespace std; #define ll long long #define N 600005 ll 阅读全文

posted @ 2020-05-28 10:36 zsben 阅读(198) 评论(0) 推荐(0) 编辑

Android基础—— 自定义RecyclerView内部控件的监听器
摘要:RecyclerView内部控件的监听器要写在对应的Adapter中 1.在Adapter里写好要用的回调接口 public interface OnItemClickListener1{ // 进入商品详情监听 public void onItemClick(int pos); } public 阅读全文

posted @ 2020-05-26 00:10 zsben 阅读(620) 评论(0) 推荐(0) 编辑

【思维】模拟+暴力——icpc nwrrc 2019 K
摘要:这题思路上不是很难,但是写起来贼复杂(知道为什么没啥人过了) 其实这题难的不是A的面积有多大,而是确定A后怎么填充剩下的矩形 自己写的代码复制粘贴三百多行,贴上题解的得了 题解用拉伸的填充法把代码化简了好多。。 如果不需要最大化矩形A的面积,则可以用如下算法解决该问题。垂直拉伸每个字母,直到碰到另一 阅读全文

posted @ 2020-05-25 23:54 zsben 阅读(256) 评论(0) 推荐(0) 编辑

【思维】数学+treap——icpc 2019 nwerc
摘要:要求构造一棵treap,其结点的(key,priority)要求为(x,sinx),且这棵treap的高度是n,所有x都为整数 根据treap的特性,将问题转化为构造一个pair<x,sinx>序列,要求x递增,sinx也递增 当sinx很小时,sinx=x,即接近线性,那么我们找到一个能满足sin 阅读全文

posted @ 2020-05-25 18:00 zsben 阅读(172) 评论(0) 推荐(0) 编辑

【思维】欧拉路+建模——uva10129
摘要:建模型的思路值得学习 最原始的思路:直接把单词看成一个点,然后和前后可相连的进行连边,但是本题这样做复杂度太大了 不如将单词抽象成一条边,a-z总共26个字符抽象成点,由单词首字母连向单词尾字母 本题就变成了在图上跑欧拉通路 建完图后只要判一判这个图是不是欧拉图就行,1.考虑是否至多有两个点的度数为 阅读全文

posted @ 2020-05-25 14:12 zsben 阅读(156) 评论(0) 推荐(0) 编辑

【模板】哈密顿回路Dirac定理模型——poj2438
摘要:参考博客 https://blog.csdn.net/zhouzi2018/article/details/81278942?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.none 阅读全文

posted @ 2020-05-25 11:37 zsben 阅读(673) 评论(0) 推荐(0) 编辑

【结论】欧拉路+并查集——hdu3018
摘要:对于一个连通图而言,有这样的一个性质:其需要画的笔数=度数为奇数的点数除以2 有了这个结论,用并查集求联通块就行 #include<stdio.h> #include<string.h> #include<iostream> #include<algorithm> using namespace s 阅读全文

posted @ 2020-05-25 09:03 zsben 阅读(108) 评论(0) 推荐(0) 编辑

【经典】欧拉回路应用——旋转鼓轮模型
摘要:hdu2894 csdn上的题解感觉一模一样。。都没讲明白结点用几位数来构造。。然后自己瞎画了半天 题目给定的k,要求数字是k位数,那么我们就要用k-1位数来构造结点,剩下一位数用来在边上进行转移(这一步很重要,博客上几乎没讲到) 当k=3 时,我们构造出四个点 00,01,10,11,每个点有两条 阅读全文

posted @ 2020-05-24 23:02 zsben 阅读(548) 评论(0) 推荐(0) 编辑

几何+矩形交——icpc nwerc 2019 I
摘要:老套路了。 用二分求答案,judge时把每个点转换成矩形,最后看n个矩形是否有交点 #include<bits/stdc++.h> using namespace std; #define N 3005 #define ll long long struct Point{ll x,y;}c; str 阅读全文

posted @ 2020-05-24 18:42 zsben 阅读(185) 评论(0) 推荐(0) 编辑

【思维】图论+dp——icpc 2019 nwerc J
摘要:/* 从后往前依次确定,i->j直接连边只会增加一种路线 */ #include<bits/stdc++.h> using namespace std; #define N 505 char s[N][N]; int n,w[N][N],mp[N][N],t[N][N]; int main(){ c 阅读全文

posted @ 2020-05-24 15:39 zsben 阅读(197) 评论(0) 推荐(0) 编辑

【思维】自动机+预处理+复杂度分析——icpc 2019 nwerc H
摘要:可以确定分组的方式是贪心的放 先算出前缀和,然后用一个自动机pre[i]表示当和是i个任务时,事实上只能取pre[i]个,因为事物不能断开 直接把1-1e6的答案全算出来,由于调和级数,总复杂度nlogn #include<bits/stdc++.h> using namespace std; #d 阅读全文

posted @ 2020-05-24 14:22 zsben 阅读(133) 评论(0) 推荐(0) 编辑

树形dp——游族杯 D
摘要:只有三种情况:全是1,有一个2的,只有一个点的 树形dp求最长的1链,或者带一个2的最长1链即可 #include<bits/stdc++.h> #define rep(i,x,y) for(auto i=(x);i<=(y);++i) #define dep(i,x,y) for(auto i=( 阅读全文

posted @ 2020-05-23 23:04 zsben 阅读(160) 评论(0) 推荐(0) 编辑

【模板】三维偏序总结——动态开点树套树做法+cdq分治做法
摘要:三维偏序:对于每个点P(x,y,z), 统计所有P'(x'<=x,y'<=y,z'<=z)的某些信息 动态开点树套树确实比较强大,既能做三维偏序的求最值,又能做三维偏序求和 求最值 题目链接 https://acm.ecnu.edu.cn/contest/273/problem/C/ #includ 阅读全文

posted @ 2020-05-23 18:46 zsben 阅读(300) 评论(0) 推荐(0) 编辑

Android 常用的控件组合
该文被密码保护。

posted @ 2020-05-21 15:59 zsben 阅读(6) 评论(0) 推荐(0) 编辑

android 圆角banner
该文被密码保护。

posted @ 2020-05-21 12:20 zsben 阅读(9) 评论(0) 推荐(0) 编辑

常用git操作
该文被密码保护。

posted @ 2020-05-20 09:21 zsben 阅读(6) 评论(0) 推荐(0) 编辑

二分图+dp——cf1354E
摘要:/* 先把点分联通块,做出二分图 二分图一侧染1,3,另一侧染2 分组背包求n2的可行方案 */ #include<bits/stdc++.h> using namespace std; #define N 5005 #define M 100005 int n,m,n1,n2,n3; vector 阅读全文

posted @ 2020-05-19 18:33 zsben 阅读(180) 评论(0) 推荐(0) 编辑

二分+bit——cf1354D
摘要:用树状数组防止mle 求前k大用二分弄一下前缀和就行 ps:为什么我没打这场cf。。 /* 28*1000*1000b */ #include<bits/stdc++.h> using namespace std; #define N 1000006 int n; int c[N]; void ad 阅读全文

posted @ 2020-05-19 15:50 zsben 阅读(175) 评论(0) 推荐(0) 编辑

计算几何——cf1354c2
摘要:这么清新脱俗的几何爱了 由于n必定是奇数,所以2*n正多边形一定是可以上下对半分,且上下有一个最高/低的三角形 限制正方形长度的必定是多边形左右宽度和上下高度,当这两个宽度相同时,正方形边长最小 所以二分多边形转过的角度来算即可 纯手算,推下公式就行 #include<bits/stdc++.h> 阅读全文

posted @ 2020-05-19 15:15 zsben 阅读(111) 评论(0) 推荐(0) 编辑

【模板】三分——cf1355E
摘要:发现自己以前的三分模板有问题。。换个标准的! //整数三分 int l = 1,r = 100; while(l < r) { int lmid = l + (r - l) / 3; int rmid = r - (r - l) / 3; lans = f(lmid),rans = f(rmid); 阅读全文

posted @ 2020-05-19 13:45 zsben 阅读(164) 评论(0) 推荐(0) 编辑

模拟+分类大讨论——cf
摘要:显然,三元组前两位确定后,第三位最多只有两种情况 答案只有111,112,121,211,122,212,221,123,132,213,231,312,321 分别讨论下存不存在就行 感觉题解的讨论方法不错,自己的写了(复制了)两百多行。。 #include <bits/stdc++.h> #de 阅读全文

posted @ 2020-05-19 12:01 zsben 阅读(176) 评论(0) 推荐(0) 编辑

【思维】复杂度均摊+并查集——icpc cerc 2019 Saba1000kg
摘要:/* 复杂度均摊: 如果M>sqrt(N),这种询问最多sqrt(N)组,直接把所有边扫一遍求联通块即可 如果M<sqrt(N),直接两两枚举点判边,复杂度M^2,总复杂度N/M*M^2=NM */ #include<bits/stdc++.h> using namespace std; #defi 阅读全文

posted @ 2020-05-19 10:39 zsben 阅读(203) 评论(0) 推荐(0) 编辑

【经典】单调栈+离线+线段树区间更新——求所有子区间gcd之和 icpc cerc 2019 b
摘要:经典题经典折磨。。 #include<bits/stdc++.h> using namespace std; #define N 200005 #define mod 1000000007 #define ll long long ll n,a[N]; int L[N],R[N]; void pre 阅读全文

posted @ 2020-05-18 00:13 zsben 阅读(270) 评论(0) 推荐(0) 编辑

离散化+圆直线交点+转化——icpc cerc 2019 D
摘要:题目明明写的是线段和圆。。实际上是直线和圆,白白讨论了很多情况。。 这种转化老套路了 #include<bits/stdc++.h> using namespace std; typedef double db; const db eps=1e-8; const db pi=acos(-1); in 阅读全文

posted @ 2020-05-17 21:52 zsben 阅读(233) 评论(0) 推荐(0) 编辑

【经典】ac自动机+矩阵快速幂——求长为n的不包含某些串的所有串个数 icpc cerc 2019
摘要:老经典题了 #include<bits/stdc++.h> using namespace std; #define N 105 #define ll long long #define mod 1000000007 ll n,m; char buf[N],s[N]; struct Matrix{ 阅读全文

posted @ 2020-05-17 12:02 zsben 阅读(159) 评论(0) 推荐(0) 编辑

bfs+规律——cf1350E
摘要:没啥思维难度。。就是找到一个格子第一次开始变色的时间点f[i][j],再往后这个格子必定会每个时间改变一次颜色 处理出第一次就变颜色的格子,然后用bfs进行扩展,找周围没被扩展过的,且初始颜色不同的格子 #include<bits/stdc++.h> using namespace std; #de 阅读全文

posted @ 2020-05-15 14:06 zsben 阅读(142) 评论(0) 推荐(0) 编辑

【思维】思维题——cf1350D
摘要:很有意思的题目,感觉看智商。。 /* 结论:显然只要成功操作一次,就可以把整个数组变成k 如何找到这一次操作? 把<k,=k,>k的数变成0 1 2 显然只要存在11,12,101,102,这种类型,就必定可以操作成功一次 结论:只要存在1,且存在|i-j|<=2 && ai>=1 && aj>=1 阅读全文

posted @ 2020-05-15 12:35 zsben 阅读(146) 评论(0) 推荐(0) 编辑

【好题】dp降维转化+数学+贪心——cf1348E
摘要:这题dp的状态设计值得学习,由于多状态复杂度会爆炸,所以考虑降维 如果可以用一个维度求出另一个维度的状态(即两个维度的值可以看做是绑定在一起的),那么就可以降下一维了 这题还有点卡常。。评测机快就能跑过去。。 /* 很容易想到用dp[i][j][k]来表示前i棵树,留下j个红果子,k个蓝果子状态下可 阅读全文

posted @ 2020-05-15 10:10 zsben 阅读(215) 评论(1) 推荐(0) 编辑

【好题】线段树+贪心+思维——cf1248F
摘要:位置的嵌套把我弄晕了。。。总感觉多写了一层 /* 首先要找到一种满足条件的排列方式 给所有段按(左端点,右端点)升序排序,然后分配位置 从左到右扫描位置i,把左端点<i的所有Seg放入优先队列 优先队列每次取出右端点最小的 然后考虑两个段是否可以交换顺序:设段[l,r]被分配的位置是x 那么和他交换 阅读全文

posted @ 2020-05-14 22:47 zsben 阅读(165) 评论(0) 推荐(0) 编辑

链表+思维+模拟——NWERC 2019 Jackdaws And Crows
摘要:给定一个数组a,将其变成正负相间 操作1:任选一个子集,里面的数-1或+1,代价c操作2:删掉一个数,代价r 重要结论:如果ab符号冲突,bc符号冲突,那么肯定要删两个(删一个不够,自己模拟一下情况)从小到大枚举a[i],表示abs(a[i])小于a[i]的都可以变成自由点 同时非自由点需要删掉的个 阅读全文

posted @ 2020-05-14 16:51 zsben 阅读(359) 评论(0) 推荐(0) 编辑

平衡树性质+思维——NWERC 2019 Balanced Cut
摘要:找了老半天错误。。 高度为i的平衡树至少要有f(i)=f(i-1)+f(i-2)+1个结点从小到达枚举i,如果i被选中,那么其所有祖先p也必被选中考虑i能否加入:如果i在祖先p的左子树里,p的左子树高度更新,连带更新右子树必须要有的高度 如果i在组先p的右子树里,更新右子树高度,只要右子树高度<=左 阅读全文

posted @ 2020-05-14 13:10 zsben 阅读(252) 评论(0) 推荐(0) 编辑

【好题】思维+数学+二分+单调栈——NWERC 2019 Height Profile
摘要:可以很简单地发现,如果可以找到这样的两点,那么最优的情况一定是,两个点中至少有一个点在端点上。 对于每一个斜率k,将第i个节点减去k*i,形成新的图。在新的图上斜率大于等于0就是符合条件的。 我们可以枚举右端点。对于同一个右端点,如果点a比点b更靠近右端点并且点a不小于点b,那么点a就不需要考虑了, 阅读全文

posted @ 2020-05-14 09:36 zsben 阅读(204) 评论(0) 推荐(0) 编辑

codeforce round 325 C/D/E
摘要:C #include<bits/stdc++.h> using namespace std; const int MAX_N=4010; int n; long long d[MAX_N],p[MAX_N],v[MAX_N]; int cure[MAX_N]; int main() { freope 阅读全文

posted @ 2020-05-12 17:12 zsben 阅读(111) 评论(0) 推荐(0) 编辑

leetcode 题单
摘要:ps:因为codeforces新的题都刷的差不多了,比赛也不是天天有,所以打算上leetcode补点知识,题单里会贴一些比较有意思(比较有技巧性)的题 难度大概在mid-hard(其实大部分是hard..) 缺失的第一个正数(类似于求数组的mex):将数组本身看成哈希表 class Solution 阅读全文

posted @ 2020-05-10 09:57 zsben 阅读(414) 评论(0) 推荐(0) 编辑

【好题】数学+二分+思维——cf1344D/1345F
摘要:/* 对于每个bi,当bi从x-1提升到x时,对答案的贡献是 ai-3x^2+3x-1, x>=1,函数递减 即bi越大时,bi+1所获得的增量收益就越低 所以有暴力的解法就是每次找到当前+1后增量最大的那个bi,给其+1 考虑二分这个增量delta,对每个bi,二分找到x,当bi从x-1增加到x时 阅读全文

posted @ 2020-05-08 15:12 zsben 阅读(354) 评论(0) 推荐(0) 编辑

【好题】图论+思维——cf1344C/cf1345E
摘要:/* u<v,那么u->v连边,形成一个DAG 如果u选择的是全称量词,那么所有u出发可达的点v,显然有u<v,所以v必须是存在量词 所有可以到达u的点v,显然有u>v,所以v必须是存在量词 由于必须从左到右进行,所以如果a[i]是存在量词,那么a[i]可达的a[i+k],可达a[i]的a[i+k] 阅读全文

posted @ 2020-05-08 11:25 zsben 阅读(250) 评论(1) 推荐(0) 编辑

模拟+bfs——cf1344D
摘要:#include<bits/stdc++.h> using namespace std; #define N 2005 char s[N][N]; int n,m,vis[N][N],ans,f1[N],f2[N]; void dfs(int i,int j){ vis[i][j]=1; if(i+ 阅读全文

posted @ 2020-05-08 09:02 zsben 阅读(194) 评论(0) 推荐(0) 编辑

【留坑】模拟+极角排序+预处理——ICPC PNWRC 2019 H
摘要:做的我要吐了。。留着吧以后再看看 /* 两两枚举起始的点,然后按题意模拟寻找下去,为了加速,预处理nxt[i][j]表示直线p[i]->p[j]旋转时,下一个碰到点的下标 */ #include <iostream> #include <algorithm> #include <vector> #i 阅读全文

posted @ 2020-05-07 18:00 zsben 阅读(162) 评论(0) 推荐(0) 编辑

【好题】思维+几何+离散化——ICPC PNWRC 2019 G
摘要:这题的投影求交解法很新奇 /* 把脉冲i往后推ti个单位,然后将其投影在y=x上 把所有投影点按x坐标排序,遇到垂直脉冲投影的起点,cntv++,遇到垂直脉冲投影的终点,cntv-- 遇到水平脉冲投影的起点,ans+=cntv 垂直脉冲的贡献同理 */ #include<bits/stdc++.h> 阅读全文

posted @ 2020-05-07 15:53 zsben 阅读(192) 评论(0) 推荐(0) 编辑

【难】组合数学+dp——ICPC PNWRC 2019
摘要:两篇讲的比较清楚的博客(感觉比官方题解讲的清楚些) https://blog.csdn.net/The___Flash/article/details/105931836 https://blog.csdn.net/monochrome00/article/details/105921913/ 思路 阅读全文

posted @ 2020-05-07 11:18 zsben 阅读(142) 评论(0) 推荐(0) 编辑

【好题】导数+统计贡献+扫描—— icpc PNWRC 2019
摘要:这题的思路很好 首先不难发现,在特定的角度范围内,所求值的函数是线性的,这暗示了最大值必定在 等于某个给定 的角度 时取得。直接暴力地计算每一个值是显然不可取的,但我们可以换一种思路,预先计算每个给 定角度所能对答案贡献的值的函数的导数变化的角度,然后将这些角度排序,开始遍历,维护到达每个 角度时答 阅读全文

posted @ 2020-05-07 09:28 zsben 阅读(146) 评论(0) 推荐(0) 编辑

【模板】二分图匹配+构造+最大独立集——icpc PNWRC 2019
摘要:求最大独立集,一般图的最大独立集复杂度是指数的,要想到怎么构造二分图 由于每个字符串每个字符只出现一次(一开始没看到这个条件。。),所以可以按逆序对奇偶性来给点分组,构造二分图 构造出二分图后,最大独立集=n-最大匹配数 二分图匹配模板(O(nm)复杂度) #include <bits/stdc++ 阅读全文

posted @ 2020-05-06 20:23 zsben 阅读(147) 评论(0) 推荐(0) 编辑

【好题】构造+数学+思维——NCPC 2019 Game of Gnomes
摘要:/* 这个构造思路为啥想不到呢。。显然对于一组来说,k+x和x的结果对答案是一样的 枚举完整的k的个数 n/k-m<=i<=n/k 剩下的平均分 */ #include<bits/stdc++.h> using namespace std; #define ll long long ll n,m,k 阅读全文

posted @ 2020-05-03 20:15 zsben 阅读(207) 评论(0) 推荐(0) 编辑

【思维】图论+贪心——NCPC 2019 Incremental Induction
摘要:理解成图上对应关系就好想得多 如果s[i][j]=‘0’,那么从i向j连一条边,最后形成的图必定是完全图 当右边有t人时,右边输给左边的总场数为sum(out(i))-t*(t-1)/2, 即右边到左边的边总数=右边的点出度和-右边点自己和自己连的边 所以要让k最小,只要给出度排个序即可 #incl 阅读全文

posted @ 2020-05-03 18:21 zsben 阅读(235) 评论(0) 推荐(0) 编辑

【好题】线段树区间合并(CDQ分治)——cf1316F
摘要:/* 离线读入所有值后离散化 题意要求的是,sum{ ai*2^(i-1)*aj*2^(n-j) } 分析这个式子,考虑进行分治 区间[l,r]的 sum{ ai*2^(i-l)*aj*2^(r-j) } 可以将式子分成 ai*2^(i-l) 和 aj*2^(r-j)两部分看, 线段树维护四个值,s 阅读全文

posted @ 2020-05-03 17:37 zsben 阅读(213) 评论(0) 推荐(0) 编辑

NCPC I 2019
摘要:/* n,m,s,d 有n瓶新水放入s个柜子,每个柜子容量是d,每个柜子一开始有si瓶旧水 现在随机在柜子里取m瓶水,使每个人都拿到旧水的概率最大化的放新水策略 */ #include<bits/stdc++.h> using namespace std; int n,m,s,d; struct N 阅读全文

posted @ 2020-05-03 16:35 zsben 阅读(159) 评论(0) 推荐(0) 编辑

dp+贪心——2019 NCPC A
摘要:把结论推出来就完事了 #include <bits/stdc++.h> #define maxn 100000005 using namespace std; int dp[maxn]; struct Node{ int l,w,h; bool operator <(const Node &b)co 阅读全文

posted @ 2020-05-02 22:54 zsben 阅读(181) 评论(0) 推荐(0) 编辑

构造+树形dp+思维——cf1341F
摘要:这种构造题实在是太耗脑细胞了,看题解又不太甘心。。策略改来改去弄了半天 /* 首先有个结论:每个点至少要用掉的时间=这个点的度数 然后进行构造;设tv为u->v时到v的时间,让v回到u时的时间也是tv,设u有k个子树,那么u只要分配给这k个子树[1,k+1]这些数值即可 再设tu为fa[u]->u的 阅读全文

posted @ 2020-05-02 22:36 zsben 阅读(168) 评论(0) 推荐(0) 编辑

01bfs+最短路维护dp——cf1341E
摘要:昨天刚刚做过类似的题,就是用最短路的松弛方式来维护dp数组 /* 考虑一个二元组(t,i) 表示花费t时间,当前处在绿灯的now=t%g秒,处于结点i now!=0,可以扩展点(t+x,j),且now+x<=g now==0,可以扩展点(t+x,j),且x<=g y用一个优先队列维护这个二元组 */ 阅读全文

posted @ 2020-05-01 21:47 zsben 阅读(153) 评论(0) 推荐(0) 编辑

分类讨论——NCPC 2019 B
摘要:把情况考虑清楚,分类讨论不太复杂 第一种情况:1+1+1形式 第二种情况:1+2形式 然后枚举每个矩形边长a作为底还是边长b作为底就行 #include<bits/stdc++.h> using namespace std; #define ll long long ll p[4][2]; int 阅读全文

posted @ 2020-05-01 18:13 zsben 阅读(198) 评论(0) 推荐(0) 编辑

【经典】虚树+字典树——ICPC NCNA 2018 A
摘要:首先建立好trie,由于问题询问的结点和不超过2e5,可以用虚树解决 bug百出。。调试了一上午 /* 对给定串建立trie,标记上终止结点,d[u]表示结点u的深度 对于每个询问,标记k个串对应的终止结点,然后建立虚树 虚树里维护size[u],fa[u],所有size[u]=L的点都是符合要求的 阅读全文

posted @ 2020-05-01 13:30 zsben 阅读(188) 评论(0) 推荐(0) 编辑

导航

统计

点击右上角即可分享
微信分享提示