随笔分类 - ACM-dp
摘要:链接:点我输入顺序又反了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define MOD 100000000710 const int ...
阅读全文
摘要:链接:点我记忆化搜索很好写 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define MOD 100000000710 const int...
阅读全文
摘要:链接:点我一开始的方程式很好写的,但是数据太大,考虑到石子数目很小,我们对其进行离散化,若相邻两点距离超过ya的值,则后面所有点都往前移动,这里ya的值是可以调整的#include #include #include using namespace std;const int maxn=110;co...
阅读全文
摘要:题意:Michael has a telecontrol robot. One day he put the robot on a loop with n cells. The cells are numbered from 1 to n clockwise. At first the robot ...
阅读全文
摘要:题意:给出一个点p(X,Y)以及若干圆。从中选出尽可能多的圆满足:圆能且只能包含p或者原点中的一个(不能在圆上);圆之间不能相交或者相切。链接:点我用dp求满足条件包含一个点圆的最多数目,然后两个点再求最大的即可思路:首先分理出只包含原点或者p的圆,然 后分别按照半径升序排序。分别对包含原点和p的进...
阅读全文
摘要:题意:统计一棵带权树上两点之间的最长距离以及最长距离的数目链接:点我首先统计出结点到叶子结点的最长距离和次长距离。然后找寻经过这个点的,在这个为根结点的子树中的最长路径个数目。 1 #include 2 #include 3 #include 4 #include 5 using ...
阅读全文
摘要:题意:求包含49的数字,先求不包含的,然后减一下就行了链接:点我如果不懂这种数位dp代码,可以看我博客dp专题里的初探数位dp 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using n...
阅读全文
摘要:题意:有一家快餐店送外卖,现在同时有n个家庭打进电话订购,送货员得以V-1的速度一家一家的运送,但是每一个家庭都有一个不开心的值,每分钟都会增加一倍,值达到一定程度,该家庭将不会再订购外卖了,现在为了以后有更多的家庭订购,要将外卖送到的情况下使得所有用户的不开心值总和达到最小链接:点我很明显,每多走...
阅读全文
摘要:题意:给定n个点的坐标,先问这些点是否能组成一个凸包,如果是凸包,问用不相交的线来切这个凸包使得凸包只由三角形组成,根据costi, j = |xi + xj| * |yi + yj| % p算切线的费用,问最少的切割费用。链接:点我题解:点我2015-07-20:专题复习代码稍微修改了一下,顺便发...
阅读全文
摘要:链接:点我又是去年的题,拿到就忘了 1 #include 2 #include 3 using namespace std; 4 #define max(a,b) (a) > (b) ? (a) : (b) 5 6 int N,M; 7 char map[110][20],num[110],...
阅读全文
摘要:题意:给出一个n行m列的草地,1表示肥沃,0表示贫瘠,现在要把一些牛放在肥沃的草地上,但是要求所有牛不能相邻,问你有多少种放法。链接:点我定义状态dp【i】【j】,第 i 行状态为 j 的时候放牛的种数。去年暑假做过的题,现在忘光了 1 #include 2 #include 3 const i...
阅读全文
摘要:题意:有三个骰子,分别有k1,k2,k3个面。每个面值为1--kn每次掷骰子,如果三个面分别为a,b,c则分数置0,否则加上三个骰子的分数之和。当分数大于n时结束。求游戏的期望步数。初始分数为0链接:点我设dp[i]表示达到i分时到达目标状态的期望,pk为投掷k分的概率,p0为回到0的概率则dp[i...
阅读全文
摘要:题意:一个机器人想越狱,他只能带一定电量的电池,'S'表示道路可行,'G'表示充电器, 只可充电一次,但是可以经过很多次。'F'表示起点,'Y'表示要破坏的机关,也是只能破坏一次,但是可以经过无数次。'D'表示不能经过的地点。求他能 破坏所有机关,带的最小初始电量。链接:点我真是神烦无比啊啊,这题 ...
阅读全文
摘要:题意:在一条布满地雷的路上,你现在的起点在1处。在N个点处布有地雷,1 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 #define MOD 10000000071...
阅读全文
摘要:题意: 有N 个点的无向图,要去其中 h个地点做事,做事需要先办理护照,之后可以挣一定数量的钱,知道了一开始有的总钱数,和 一些城市之间道路的花费,问可不可以在 指定的 h 个城市打完工,并回到起点 1.链接:点我是个好题!!!状态转移方程dp[s][i]=max(dp[s][i],dp[s'][j...
阅读全文
摘要:题意:给你n个点,n-1条边构成树,每条边有边权(表示走每条边的时间),每个点有点权,问在时间T从点1走到点n,能够得到最多的点权有多少。 题目链接:点我 由于是树,最优的结果一定经过最短路,其他边要么经过两次,要么零次,所以先求最短路,权置为零(注意最短路上的线一定是只走了一遍的),之后dp,最短
阅读全文
摘要:题目大意:给定n个敌方据点,1为司令部,其他点各有一条边相连构成一棵 树,每条边都有一个权值cost表示破坏这条边的费用,叶子节点为前线。现要切断前线和司令部的联系,每次切断边的费用不能超过上限limit,问切断所 有前线与司令部联系所花费的总费用少于m时的最小limit。1 2 #include ...
阅读全文
摘要:题意:tsp问题,但是每个点可以最多走两次链接:点我转移方程见代码#include#include#include#includeusing namespace std;#define inf 0x3f3f3f3fint State[12];int vis[60000][12];int dp[600...
阅读全文
摘要:题意:就是给定n个点,每个地点有value[i]的宝物,而且有的宝物必须是另一个宝物取了才能取,问取m个点可以获得的最多宝物价值。一个子节点就可以返回m个状态,每个状态表示容量为j(j 2 #include 3 #include 4 #include 5 #include 6 #include 7 ...
阅读全文
摘要:题意:很简单,就是给你一棵树,每条边都有一定的权值,然后让你找到每个点所能走到的最远距离链接:点我那么我们可以这样高效的来处理先以 1 作为根节点进行一次 dfs 遍历,遍历的时候把以 第 i 为根节点往子树方向可以走到的最远距离和次远距离给求出来,且这两个距离是不在同一个分支中的然后我们进行第二次...
阅读全文