上一页 1 2 3 4 5 6 7 8 9 10 ··· 109 下一页

2020年6月2日

【思维】状压dp—— 2020 联想杯 M

摘要: 这个状压还要输出方案实在是太ex了 第 i 行放完了水后,能新种下的甘蔗数量取决于 i − 1 行和 i − 2 行 的状态 令 dp【i,j】 表示放完前 i 行且最后两行状态为 j 时最多能种下的数量 我们在第 i 行放水有可能能使 i − 1 行的某个格子能够放上甘蔗了, 但如果不知道 i − 阅读全文

posted @ 2020-06-02 17:45 zsben 阅读(161) 评论(0) 推荐(0)

【思维】建图+排列组合+预处理+最短路—— 2020 联想杯 E

摘要: 被string坑惨了。。 使用string前记得如果要直接进行下标运算,如s[10]=‘a'这种,要记得先给string开空间,string s=string(100,'a') 这样 首先预处理出原串中所有类型数对的个数,如12,13,14...这种 考虑每种变换,都是在原串的基础上,通过映射得到的 阅读全文

posted @ 2020-06-02 15:51 zsben 阅读(160) 评论(0) 推荐(0)

【思维】二分图构造——eoj 联想杯F 好题

摘要: 题意: 把 n 个数分成若干组,组内互质,问最少要分几组。题目给 了一个贪心的假算法,你需要构造一组输入和对应的解使得你分的 组数恰好比贪心的少 k ,不要求你分的也是最少的 数组a不能有重复元素的解法 给定数组A,要求将A分最少的组,每组内的元素互质 有一个假算法,枚举A[1..n],如果没有可加 阅读全文

posted @ 2020-06-02 00:13 zsben 阅读(170) 评论(0) 推荐(0)

2020年6月1日

【思维】dp+字符串+转化条件——cf1363F

摘要: 感觉这题真好! /* 首先可以将操作换一种理解方式:取s[i]然后插到其左边任一位置 可以发现从s->t是一个凑后缀的过程 那么我们将s,t翻转,将操作变成取s[i]然后插到右边任一位置,于是s->t变成了凑前缀的过程 dp[i][j]表示s[1..i]凑出t[1..j]的代价 如果s[1..i]能 阅读全文

posted @ 2020-06-01 17:49 zsben 阅读(231) 评论(0) 推荐(0)

贪心+树形dp——cf1353E

摘要: 昨天早知道先做这题的。。 随便写写就能过 /* 贪心:结点按a升序排序依次处理 s[u]表示u子树b=1结点个数 t[u]表示u子树c=1节点个数 dif[u]表示u子树bc不同的个数 vis[u]表示u所有子孙被访问了 每次遍历到u,先求一次s,t,dif 如果s[u]=t[u],那么u的贡献就是 阅读全文

posted @ 2020-06-01 14:21 zsben 阅读(152) 评论(0) 推荐(0)

交互+二分——cf1353D

摘要: 一般交互就跑不出二分。。 但是这题我看了半天才明白啥意思。。最后还fst了 发现有个地方多输出了点东西。。 第一次询问:最大值mx 后面十次询问:二分确定最大值所在位置x 最后一次询问:设x所在si,问出si对应的答案,其他位置的答案都是mx #include<bits/stdc++.h> usin 阅读全文

posted @ 2020-06-01 14:20 zsben 阅读(161) 评论(0) 推荐(0)

2020年5月30日

【思维】单调栈+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 阅读(176) 评论(0) 推荐(0)

2020年5月29日

【经典】【模板】扫描线+求平面内相交线段+二分——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 阅读(263) 评论(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 阅读(136) 评论(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 阅读(223) 评论(0) 推荐(0)

上一页 1 2 3 4 5 6 7 8 9 10 ··· 109 下一页

导航