[agc004e]Salvage Robots dp】的更多相关文章

题目链接 https://atcoder.jp/contests/agc004/tasks/agc004_e 题解 本题的难度不在于想到大体思路,而在于如何把代码写对.. 首先我们可以不让机器人动,让出口和边界一起动. 然后设\(dp[l][r][u][d]\)表示出口往四个方向分别动了最多\(l,r,u,d\)格,最大能圈住几个机器人. 转移以向下为例: 向下转移合法的条件为\(x_0+d<n-u\) (\(x_0,y_0\)为起点坐标),因为出口的位置是\(x_0+d+1\), 而同时要满足…
Description 蛤蟆国的领土我们可以抽象为H*W的笼子,在这片蛤土上,有若干个机器人和一个出口,其余都是空地,每次蛤蟆会要求让所有的机器人向某个方向移动一步,当机器人移动到出口时会被蛤蟆活摘出来,当机器人移出笼子时会自焚,求你最多取出的多少个机器人. Input 第一行两个整数H,W,如题目所述 接下来H行,每行W个字符,包含三类字符: 第一类是'.'表示空地 第二类是'o'表示有一个机器人 第三类是'E'表示有一个出口,出口有且仅有一个 Output 一行,活摘的机器人个数 Sampl…
Description 蛤蟆国的领土我们可以抽象为H*W的笼子,在这片蛤土上,有若干个机器人和一个出口,其余都是空地,每次蛤蟆会要求让所有的机器人向某个方向移动一步,当机器人移动到出口时会被蛤蟆活摘出来,当机器人移出笼子时会自焚,求你最多取出的多少个机器人. Input 第一行两个整数H,W,如题目所述 接下来H行,每行W个字符,包含三类字符: 第一类是'.'表示空地 第二类是'o'表示有一个机器人 第三类是'E'表示有一个出口,出口有且仅有一个 题解: 这看起来就像是一道dp题--(我TM没想…
题意: 一个网格图,有若干机器人,还有一个出口. 操作一系列指令让机器人一起上下左右走,走出矩形就死,进入出口则得救. 最多救多少机器人? $W,H \leq 100$ 考虑不让所有机器人移动,而让出口和矩形边界上下左右移动. 我们推一推性质. 出口移动在一个矩形范围内(黄色矩形)的时候,会出边界的机器人是周围的一圈(红色部分). 假如我们走到一个点$(x,y)$,如图,那么我们再走黑色框出来的矩形里面的地方,是不会让其它没死的机器人出边界的. 如果我们不仅走到了$(x,y)$,还走到过$(x1…
题目大意 一个n*m的矩阵,矩阵内有一个出口和若干个机器人,每一步操作可以使所有的机器人向任意方向移动一格,如果机器人出了边界就爆炸.求最多可以让多少个机器人走到出口. 解题思路 发现,移动所有机器人,其实就相当于移动出口和边界. 于是,设f[i][j][k][l],表示机器人走完了子矩阵(i,j)(k,l),最多可以让多少个机器人走到出口. 每次多加一行或一列转移,根据边界来看增加的机器人数. 详细看程序. #include <cmath> #include <iostream>…
C. Sonya and Robots time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Since Sonya is interested in robotics too, she decided to construct robots that will read and recognize numbers. Sonya ha…
LINK:Removing Robots 没想到 自闭. 考虑了一个容斥 发现不合法方案难以计算. 就算可以计算也几乎是n^2的做法. 考虑dp 左边会对右边产生影响 所以考虑先dp右边的再考虑左边的. 至于dp 自然是f[i]表示这个i~n这么多点的方案数. 设 i向右第一个影响不到的点为w 那么 有转移 f[i]+=f[i+1]+f[w]. 这样从左到右dp就可以算出所有的方案了. const ll MAXN=200010; ll n,ans,top; ll f[MAXN],g[MAXN],…
传送门 这个题只要想到移动机器人和移动出口是等价的就好做了 考虑设\(f[i][j][k][t]\)为最远向左移动\(i\),向右移动\(j\),向上移动\(k\),向下移动\(t\),这个矩形内最多能救的机器人 转移就记录一个前缀和来辅助转移,这样复杂度就在能通过的范围内了 但是转移还是比较麻烦的,还需要考虑当前状态下哪些机器人是已经死了的 空间有点卡,可以选择开short也可以将第一维滚动 代码: #include<cstdio> #include<algorithm> #in…
\(\mathcal{Description}\)   Link.   有一个 \(n\times m\) 的网格.每个格子要么是空的,要么有一个机器人,要么是一个出口(仅有一个).每次可以命令所有机器人向上下左右中的某个方向同时移动一格,如果某个机器人超出了棋盘的边界就会死亡.如果它到了出口的位置就会获救.求获救机器人的最大值.   \(n,m\le100\). \(\mathcal{Solution}\)   换系,以任一机器人为参考系,使出口成为唯一的动点.设 \(f(u,d,l,r)\)…
[UR #20]跳蚤电话 将加边变为加点,方案数为 \((n-1)!\) 除以一个数,\(dp\) 每种方案要除的数之和即可. 点击查看代码 #include<bits/stdc++.h> using namespace std; int n; int ver[200005],ne[200005],head[100005],cnt; inline void link(int x,int y){ ver[++cnt]=y; ne[cnt]=head[x]; head[x]=cnt; } cons…
构造题都是神仙题 /kk ARC066C Addition and Subtraction Hard 首先要发现两个性质: 加号右边不会有括号:显然,有括号也可以被删去,答案不变. \(op_i\)和\(A_{i+1}\)之间只会有一个括号:有多个括号的话只保留最外边那个,答案不变. 然后就可以定义状态:\(dp_{i,j}\)表示前\(i\)个数,还有\(j\)个未闭合的左括号,得到的最大答案. 由于只有减号右边有括号,所以只要知道左边有几个未闭合的左括号,就可以知道自己的贡献是\(1\)还是…
RE:从零开始的AGC被虐(到)生活(不能自理) 「一直注视着你,似近似远,总是触碰不到.」 --来自风平浪静的明天 AtCoder Grand Contest 001 B: Mysterious Light 设 \(f(x, y)\) 为上一次反射长度为 \(x\) ,边界长度为 \(y\) 的答案,容易观察得到 \(f(x, y) = 2 \times \lfloor\frac{y}{x}\rfloor \times x + f(y \mod x, x)\) C: Shorten Diame…
一句话题解 QwQ主要是因为这篇文章写的有点长……有时候要找某一个题可能不是很好找,所以写了这个东西. 具体的题意.题解和代码可以再往下翻._(:з」∠)_ AGC 001 C:枚举中点/中边. D:构造. E:根据组合数意义转为$DP$. F:拓扑排序,线段树优化连边. AGC 002 C:水题,看是否有a[i]+a[i+1]>=k. D:并查集上倍增,二分答案. E:博弈(坑) F:模型转化然后$DP$. AGC 003 C:一个数到自己应到位置距离为奇数的个数/2. D:数学,质因数分解,…
Atcoder/Topcoder 理论 AC Atcoder的❌游戏示范 兴致勃勃地打开一场 AGC 看 A 题,先 WA 一发,然后花了一年时间 Fix. 看 B 题,啥玩意?这能求? 睡觉觉. emmmmm 虽然这些副本里的怪一点也不友善,但是却能给直感[1]带来极大的提升. [1]:「直感」是在战斗中一瞬间判明「对自身最适合行动」的能力 Atcoder Grand Contest 2 B. Box and Ball 口胡 考虑 \(k\) 次操作后可能出现红球的集合,记录每个集合球的个数.…
AGC004 A Divide a Cuboi 我不会,谁能教教我/kk https://agc004.contest.atcoder.jp/submissions/7919351 B Colorful Slimes 枚举最多的膜法使用次数,每次搞搞. https://agc004.contest.atcoder.jp/submissions/7919450 C AND Grid 好久前写的忘了= = 考虑构造两个连通且不重合的图,套在原图中 第一个图是第一列+奇数行(除了第m列),第二个图是第…
1. 3721 Smuggling Marbles 大意: 给定$n+1$节点树, $0$为根节点, 初始在一些节点放一个石子, 然后按顺序进行如下操作. 若$0$节点有石子, 则移入盒子 所有石子移向父亲节点 把所有不少于$2$个石子的节点的石子丢掉 若树上还有石子,则返回第一步 对于所有$2^{n+1}$种初始放石子的方案, 求出最后盒子中石子总数之和. 长链剖分, 这道以后再写 2. 3727 Prefix-free Game 两个串$s,t$合法要满足 $s$不为$t$的前缀且$t$不为…
AGC004 A - Divide a Cuboid 看哪一维是偶数,答案是0,否则是三个数两两组合相乘中最小的那个 #include <bits/stdc++.h> #define fi first #define se second #define pii pair<int,int> #define mp make_pair #define pb push_back #define space putchar(' ') #define enter putchar('\n') #…
AtCoder Grand Contest 004 A - Divide a Cuboid 翻译 给定一个\(A*B*C\)的立方体,现在要把它分成两个立方体,求出他们的最小体积差. 题解 如果有一条边是偶数显然可以均分,否分沿着最长边隔开. #include<iostream> using namespace std; int a,b,c; int main() { cin>>a>>b>>c; if(a%2==0||b%2==0||c%2==0) cout…
链接:http://www.bnuoj.com/bnuoj/problem_show.php?pid=25585 Current Server Time: 2013-08-27 20:42:26 Robots on a grid Time Limit: 3000ms Memory Limit: 65536KB   64-bit integer IO format: %lld      Java class name: Main Prev Submit Status Statistics Disc…
ARC101F Robots and Exits 树状数组 有 $ n $ 个机器人和 $ m $ 个出口.这 $ n $ 个机器人的初始位置是 $ a_1,a_2.....a_n $ ,这 $ m $ 个出口的位置是 $ b_1,b_2.....b_m $ .你每次可以让所有机器人往左走一步或往右走一步.当一个机器人所在的位置有一个出口时,这个机器人就会从这个出口出去.问你有多少种让机器人全部离开的方案.两种方案不同当且仅当有至少一个机器人从不同的出口出去. $ n,m≤100000 $ $…
[题解]ARC101F Robots and Exits(DP转格路+树状数组优化DP) 先删去所有只能进入一个洞的机器人,这对答案没有贡献 考虑一个机器人只能进入两个洞,且真正的限制条件是操作的前缀\(\min \max\),我们直接按照前缀\(\min \max\)\(DP\) 把前缀\(\min \max\)设成坐标,转成格路问题,现在就变成了平面上有若干点要用一条折线分开这些点使得\(n\)对配对点在平面的两侧. 由于我们要保证方案不重,所以要钦定经过某个配对关系的下面那个点,转移方程是…
Robots \[ Time Limit: 1000 ms \quad Memory Limit: 262144 kB \] 题意 有一个机器人要从 \(1\) 点走到 \(n\) 点,每走一步都需要一天,并且这一步的代价是已经经过的天数. 思路 将问题拆成两个问题,\(dp1[i]\) 表示从 \(i\) 到 \(n\) 的天数期望,\(dp2[i]\) 表示从 \(i\) 到 \(n\) 的代价期望. 那么就很容易得到 \[ dp1[u] = \frac{\sum_{u->v}(dp1[v]…
题目传送门 题意:给出一幅有向无环图,保证只有1入度为0,n出度为0,求问一个机器人从1出发,每天等概率的走到相邻点或者留在原地,问到达n点的代价.每天的代价都不一样,就是天数(第x天走一步的代价就是x). 思路:设出度每个点的选择情况为$cnt[i]$,即出度加1. 由于每天的代价和天数有关,所以应该要想到,可以先算出天数的期望.这样就可以得到每个点的代价,再算总的代价期望. 把一道题拆成两题,简单求解. $dp[u]=dp[u]*\frac{1}{cnt[u]}+\frac{1}{cnt[u…
这题概率dp + 拓扑排序可以写 改天补解释 #include <bits/stdc++.h> using namespace std; const int maxn=1e5+10; vector<int>vec[maxn]; int indeg[maxn],seq[maxn]; double d[maxn],f[maxn]; int N,M,T,tot=0; void topo() { queue<int>q; q.push(1); tot=0; seq[tot++]…
题面 有 K K K 个机器人初始分别位于数轴上 x 1 , x 2 , . . . , x K x_1,x_2,...,x_{K} x1​,x2​,...,xK​ 的整点位置. 接下来会经历 N N N 秒,每一秒都会发生如下事件: 每个机器人分别有一半的概率停住不动,有一般的概率往坐标轴正方向移动一单位距离.每个机器人的移动是同时进行的. 问机器人互相不碰撞的概率是多少.对 998244353 998244353 998244353 取模. 2 ≤ K ≤ 10 , 1 ≤ N ≤ 1000…
本文出自   http://blog.csdn.net/shuangde800 --------------------------------------------------------------------------------- 题意 给一个n*m大小的网格,有一些格子上面会有一个垃圾.机器人从左上角(1,1)出发,每次只能选择向右,或者向下走一步, 终点是(n, m).问最多可以捡多少个垃圾? 且捡最多垃圾有几种路径方案?注意路径方案指和有垃圾的格子有关. 思路 一开始没注意到方…
Robots Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 60    Accepted Submission(s): 13 Problem Description QXJ has N robots on the plane, the i-th is at (xi,yi), numbereded 1 to N. Every robot…
Find Metal Mineral Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others)Total Submission(s): 3397    Accepted Submission(s): 1588 Problem Description Humans have discovered a kind of new metal mineral on Mars which are d…
1017: [JSOI2008]魔兽地图DotR Time Limit: 30 Sec  Memory Limit: 162 MBSubmit: 1566  Solved: 705[Submit][Status][Discuss] Description DotR (Defense of the Robots) Allstars是一个风靡全球的魔兽地图,他的规则简单与同样流行的地图DotA(Defense of the Ancients) Allstars.DotR里面的英雄只有一个属性——力量…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4003 Humans have discovered a kind of new metal mineral on Mars which are distributed in point‐like with paths connecting each of them which formed a tree. Now Humans launches k robots on Mars to collect…