Codeforces 321E Ciel and Gondolas】的更多相关文章

传送门:http://codeforces.com/problemset/problem/321/E [题解] 首先有一个$O(n^2k)$的dp. # include <stdio.h> # include <string.h> # include <iostream> # include <algorithm> // # include <bits/stdc++.h> using namespace std; typedef long lon…
[BZOJ5311/CF321E]贞鱼/Ciel and Gondolas(动态规划,凸优化,决策单调性) 题面 BZOJ CF 洛谷 辣鸡BZOJ卡常数!!!!!! 辣鸡BZOJ卡常数!!!!!! 辣鸡BZOJ卡常数!!!!!! 所以我程序在BZOJ过不了 题解 朴素的按照\(k\)划分阶段的\(dp\)可以在\(CF\)上过的. 发现当选择的\(k\)增长时,减少的代价也越来越少, 所以可以凸优化一下,这样复杂度少个\(k\) 变成了\(O(nlogw)\) #include<iostrea…
题目描述: Ciel the Commander time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Now Fox Ciel becomes a commander of Tree Land. Tree Land, like its name said, has n cities connected by n - 1 undire…
LINK:CF321E Ciel and Gondolas 很少遇到这么有意思的题目了.虽然很套路.. 容易想到dp \(f_{i,j}\)表示前i段分了j段的最小值 转移需要维护一个\(cost(i,j)\) 暴力显然不太行 不过暴力枚举决策的话 可以预处理前缀和线性推出. 显然想要优化决策的话第一步就需要O(1)求出\(cost(i,j)\) 经过画图 可以发现预处理出\(g[i][j]\)表示从\((1,1)\)到\((i,j)\)这个矩形中的点值和 和 \(sum_i\)表示\((1,1…
DP优化/四边形不等式 这题……跟邮局那题简直一模一样吧……好水的E题…… 设dp[i][j]表示前 i 艘“gondola”坐了前 j 个人,那么方程即为$dp(i,j)=min\{ dp[i-1][k]+w[k][j] \} (i\leq k\leq j)$ 很明显$w(l,r)=\sum_{i=l}^r \sum_{j=l}^r u(i,j) /2$是满足四边形不等式的……那么根据决策单调性直接搞就行了…… //CF 321E #include<vector> #include<c…
题意:N个人排成一行,分成K组,要求每组的不和谐值之和最小. 思路:开始以为是斜率优化DP,但是每个区间的值其实已经知道了,即是没有和下标有关的未知数了,所以没必要用斜率. 四边形优化. dp[i][j]表示前j个人分为i组的最小代价. 622ms #include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; ; ][maxn],pos[][maxn]; void read(in…
time limit per test4 seconds memory limit per test512 megabytes inputstandard input outputstandard output Fox Ciel is in the Amusement Park. And now she is in a queue in front of the Ferris wheel. There are n people (or foxes more precisely) in the q…
Ciel the Commander Time Limit: 1000ms Memory Limit: 262144KB This problem will be judged on CodeForces. Original ID: 321C64-bit integer IO format: %I64d      Java class name: (Any) Now Fox Ciel becomes a commander of Tree Land. Tree Land, like its na…
codeforces bzoj description 有\(n\)个人要坐\(k\)辆车.如果第\(i\)个人和第\(j\)个人同坐一辆车,就会产生\(w_{i,j}\)的代价. 求最小化代价.\(n\le4000\) sol 凸优化+决策单调性优化 这么一讲其实这题就已经做完了,复杂度\(O(n\log n\log w)\) code \(bzoj\)上需要卡常.上网蒯个读入优化模板就行了. #include<cstdio> #include<algorithm> #inclu…
题目链接   Ciel and Flipboard 题意  给出一个$n*n$的正方形,每个格子里有一个数,每次可以将一个大小为$x*x$的子正方形翻转 翻转的意义为该区域里的数都变成原来的相反数. 求经过若干次操作之后整个正方形的所有数之和. 这题关键就是要知道这个结论. 假设$st[i][j]$为$a[i][j]$的翻转情况($st[i][j] = 0$ 不翻转  $st[i][j] = 1$ 翻转) 那么一定有 $st[i][j]$ xor $st[i][x]$ xor $st[i][j…
题目链接:http://codeforces.com/problemset/problem/322/B 题目意思:给定红花.绿花和蓝花的朵数,问组成四种花束(3朵红花,3朵绿花,3朵蓝花,1朵红花+1朵绿花+1朵蓝花)的总数最大为多少. 一开始以为是水题,其实很多情况都没有考虑到,反反复复修改终于过了. 其实要考虑两种情况,这两种情况较好的那种就是最优解.姑且把四种花束分为两种类型:清一色型(3朵红,3朵绿,3朵蓝)和混杂型(红绿蓝各一朵). 第一种情况就是,保证清一色型最多(3种花都要除以3)…
题目链接:http://codeforces.com/problemset/problem/321/A 题意:在一个二维平面中,開始时在(0,0)点,目标点是(a.b),问能不能通过反复操作题目中的指令,从原点移动到目标点. 分析:如果一次完毕全部的命令后.移动到了(xx,yy),而且从(Xi.Yi)反复操作k次指令到达目标点.则能够列出方程 Xi + k * xx = a && Yi + k * yy = b.然后解出k.推断k是否大于等于0就可以. #include <cstdi…
目录 题意: 输入格式 输出格式 思路: DP凸优化的部分 单调队列转移的部分 坑点 代码 题意: 有n条超级大佬贞鱼站成一行,现在你需要使用恰好k辆车把它们全都运走.要求每辆车上的贞鱼在序列中都是连续的.每辆车上的贞鱼会产生互相怨恨的值,设a与b之间的怨恨值为G(a,b),一辆车上的贞鱼的编号从L到R,那么这辆车上的怨恨值为\(\sum_{L<=a,b<=R}G(a,b)\).注意G(a,b)=G(b,a),一对贞鱼之间的怨恨值只算一次,也就是G(a,b)和G(b,a)只算一次. 1<…
题意:给定序列,将其分成k段.如果[l, r]在一段,那么每对不相同的i,j∈[l, r]都会有ai,j的代价.求最小总代价. 解:提供两种方案.第三种去bzoj贞鱼的n²算法. 决策单调性优化: 对于两个转移点j1 < j2,若在某个点i上j2更优,则i后面的j2全部更优.这就是决策单调性. 有两种写法.一种是维护决策栈(???),我自己YY了一个线段树写法WA飞了. 还有一种是分治.对于一段待转移的区间[l, r],它们的最优转移来自于[L, R] 则对于mid = (l + r) >&g…
题目链接 CF321E 题解 题意:将\(n\)个人分成\(K\)段,每段的人两两之间产生代价,求最小代价和 容易设\(f[k][i]\)表示前\(i\)个人分成\(k\)段的最小代价和 设\(val(i,j)\)为\(i\)到\(j\)两两之间产生的代价和,容易发现就是一个矩形,可以预处理前缀和\(O(1)\)计算 那么有 \[f[k][i] = min\{f[k - 1][j] + val(j + 1,i)\}\] 直接转移显然\(O(n^2k)\) 我们把\(val(j + 1,i)\)拆…
一眼可以看出$O(kn^{2})$的$dp$方程,然后就不会了呜呜呜. 设$f_{i, j}$表示已经选到了第$i + 1$个数并且选了$j$段的最小代价,那么 $f_{i, j} = f_{p, j - 1} + sum(p + 1, i)  (0 \leq p \leq i)$ 这个$sum$可以通过把$j > i$的格子的值记为$0$,预处理前缀和得到. $sum(x, y) = s_{y, y} - s_{y, x}$ 以下全都不是我想出来的: 外层枚举$j$可以划分阶段转移,不容易看出…
把状态看成层,每层决策单调性处理 题目描述 题目大意 众所周知,贞鱼是一种高智商水生动物.不过他们到了陆地上智商会减半.这不?他们遇到了大麻烦!n只贞鱼到陆地上乘车,现在有k辆汽车可以租用.由于贞鱼们并不能在陆地上自由行走,一辆车只能载一段连续的贞鱼.贞鱼们互相有着深深的怨念,每一对贞鱼之间有怨气值.第i只贞鱼与第j只贞鱼的怨气值记为Yij,且Yij=Yji,Yii=0.每辆车载重不限,但是每一对在同辆车中的贞鱼都会产生怨气值.当然,超级贞鱼zzp长者希望怨气值的总和最小.不过他智商已经减半,想…
题目链接 很容易写出\(O(n^2k)\)的DP方程.然后显然决策点是单调的,于是维护决策点就可以了.. 这个过程看代码或者别的博客吧我不写了..(其实是忘了) 这样复杂度\(O(nk\log n)\).但是在BZOJ T了=-=. \(k\)可以带权二分优化到\(O(n\log k\log n)\)就能过了吧. 不想改了. 我特么学的是假的单调.. 又是zz错误浪费半下午(╯‵□′)╯︵┴─┴ 辣鸡题还卡时间 不过就不过吧mmp Upd: Codeforces 321E.Ciel and Go…
A. Ciel and Dancing 模拟. B. Ciel and Flowers 混合类型的数量只能为0.1.2,否则3个可以分成各种类型各自合成. C. Ciel and Robot 考虑一组命令得到的点集,那么后面的点的起始点会对应于其中点集中的一个点. D. Ciel and Duel 两种策略: atk-atk:一个取最小的前若干个,一个取最大的若干个. atk-def.atk:对于def状态的,需要优先取最靠近的值抵消,剩余atk状态的也是取最近的. E. Ciel the Co…
赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noip前的杂题训练,我也很无奈啊 做完了的扔最后,欢迎好题推荐 这么多题肯定是完不成了,能多做一道是一道吧 DP yyb真是强得不要不要的辣:http://www.cnblogs.com/cjyyb/category/1036536.html [ ] [SDOI2010]地精部落 https://www…
一.预备知识 \(tD/eD\) 问题:状态 t 维,决策 e 维.时间复杂度\(O(n^{e+t})\). 四边形不等式: 称代价函数 w 满足凸四边形不等式,当:\(w(a,c)+w(b,d)\le w(b,c)+w(a,d),\ a < b < c < d\) 如下所示,区间1.2对应的 w 之和 ≤ 3.4之和 \[ \underbrace {\overbrace {a \to \underbrace{b \to c}_3}^1 \to d }_4 \llap{\overbrac…
其实是一个还算 trivial 的知识点吧--早在 2019 年我就接触过了,然鹅当时由于没认真学并没有把自己学懂,故今复学之( 1. 决策单调性 引入:在求解 DP 问题的过程中我们常常遇到这样的问题:我们列出了一个 \(dp\) 状态转移方程式形如 \(dp_i=\min\limits_{j<i}dp_j+w(j+1,i)\) 或类似的形式,暴力转移时间复杂度 \(\mathcal O(n^2)\) 过不去,但是你发现这里的代价函数 \(w(l,r)\) 有一些比较好的性质,譬如单调性或凹凸…
标 * 的是推荐阅读的部分 / 做的题目. 1. 动态 DP(DDP)算法简介 动态动态规划. 以 P4719 为例讲一讲 ddp: 1.1. 树剖解法 如果没有修改操作,那么可以设计出 DP 方案 \(f_{i,0/1}\) 分别表示不选(\(0\))/ 选(\(1\))点 \(i\) 的最大权值,那么有 \(f_{i,0}=\sum_{x\in S_i}\max(f_{x,0},f_{x,1}),f_{i,1}=v_i+\sum_{x\in S_i}f_{i,0}\). 如果加上修改操作,那…
E. Ciel the Commander Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.codeforces.com/contest/322/problem/E Description Now Fox Ciel becomes a commander of Tree Land. Tree Land, like its name said, has n cities connected by n - 1 undirected ro…
[Codeforces 321D][2018HN省队集训D4T2] Ciel and Flipboard 题意 给定一个 \(n\times n\) 的矩阵 \(A\), (\(n\) 为奇数) , 每次可以选 \(A\) 的一个 \(\frac {n+1}2 \times \frac {n+1} 2\) 的子矩阵并让这个子矩阵中的所有值取反. 进行若干次操作最大化整个矩阵中的元素值之和. 输出这个最大值. \(n\le 33\), \(|A_{i,j}|\le 1000\) 题解 毒瘤wls活…
链接:http://codeforces.com/contest/322/problem/B 这题做错了.没考虑周全. #include <cstdio> #include <cstdlib> #include <iostream> #include <algorithm> using namespace std; int main(void) { int r, g, b; while (~scanf("%d%d%d", &r,…
Fox Ciel is playing a card game with her friend Jiro. Jiro has n cards, each one has two attributes: position (Attack or Defense) and strength. Fox Ciel has m cards, each one has these two attributes too. It's known that position of all Ciel's cards…
#include <cstdio> #include <iostream> #include <vector> using namespace std; int main(){ int n,m; cin >> n >> m; cout<<n+m-1<<endl; for(int i = 1; i <= m ; i ++) cout<<1<<" "<<i<&…
唔...这题是数学题. 比赛时做出来,但题意理解错了,以为只要判断那点是不是在线上就行了,发现过不了样例就没提交. 思路:记录每一步的偏移,假设那点是在路径上的某步,然后回推出那一个周期的第一步,判断是不是在线上就行了. 本来用斜率做,没考虑斜率不存在的情况. 重新写了一遍,过了前十个样例.但是在追加的-1 -1 UR卡住了. 三鲜大神说: kx + b = y,判断整除就可以了.(orz) 于是想了一下,开始考虑整除,写了个判断的函数来判断就行了.(蒻菜只能写出又长又臭的判断) 代码: #in…
链接 大意: 给定n结点树, 求构造一种染色方案, 使得每个点颜色在[A,Z], 且端点同色的链中至少存在一点颜色大于端点 (A为最大颜色) 直接点分治即可, 因为最坏可以涂$2^{26}-1$个节点, 所以方案一定存在 #include <iostream> #include <algorithm> #include <cstdio> #include <vector> #define REP(i,a,n) for(int i=a;i<=n;++i)…