Coins (poj 1742 && hdu 2844 DP)】的更多相关文章

Language: Default Coins Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 30047   Accepted: 10195 Description People in Silverland use coins.They have coins of value A1,A2,A3...An Silverland dollar.One day Tony opened his money-box and fou…
洛谷题目传送门 神仙思维题还是要写点东西才好. 树 每次操作把相邻且同色的点反色,直接这样思考会发现状态有很强的后效性,没办法考虑转移. 因为树是二分图,所以我们转化模型:在树的奇数层的所有点上都有一枚棋子,每次可以将棋子移向相邻的空位,目标状态是树的偶数层的所有点上都有棋子. 这样的互换总次数有没有一个下界呢? 我们求出\(a_i\)表示点\(i\)子树中棋子数量与空位数量之差(可以是负数),那么\(i\)的父边就至少要交换\(|a_i|\)次. 为什么呢?子树里面空位比棋子少的话,肯定要通过…
线图 题目描述 九条可怜是一个热爱出题的女孩子. 今天可怜想要出一道和图论相关的题.在一张无向图 $G$ 上,我们可以对它进行一些非常有趣的变换,比如说对偶,又或者说取补.这样的操作往往可以赋予一些传统的问题新的活力.例如求补图的连通性.补图的最短路等等,都是非常有趣的问题. 最近可怜知道了一种新的变换:求原图的线图 (line graph).对于无向图 $G = ⟨V, E⟩$,它的 线图 $L(G)$ 也是一个无向图: 它的点集大小为 $|E|$,每个点唯一对应着原图的一条边. 两个点之间有…
题意 ​ 题目链接:https://www.luogu.org/problem/P4827 ​ 给定一棵 \(n\) 个节点的树和一个常数 \(k\) ,对于树上的每一个节点 \(i\) ,求出 \(\displaystyle \sum_{i=1}^n{\rm dist}^k(i,j)\),其中 \(\rm{dist}\) 函数表示树上两点距离. ​ \(1 \leq n \leq 50000\) ​ \(1\leq k \leq 150\) 思路 ​ 看到求答案 \(k\) 次方的问题,应该联…
http://poj.org/problem?id=3260   Description Farmer John has gone to town to buy some farm supplies. Being a very efficient man, he always pays for his goods in such a way that the smallest number of coins changes hands, i.e., the number of coins he…
免费馅饼 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 36627    Accepted Submission(s): 12508 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的1…
搬寝室 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 23264    Accepted Submission(s): 7951 Problem Description 搬寝室是很累的,xhd深有体会.时间追述2006年7月9号,那天xhd迫于无奈要从27号楼搬到3号楼,因为10号要封楼了.看着寝室里的n件物品,xhd开始发呆,因为n是…
Bone Collector II Time Limit: 5000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 3471    Accepted Submission(s): 1792 Problem Description The title of this problem is familiar,isn't it?yeah,if you had took par…
最大连续子序列 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 25029    Accepted Submission(s): 11221 Problem Description 给定K个整数的序列{ N1, N2, ..., NK },其任意连续子序列可表示为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j…
Peter's Hobby Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 292    Accepted Submission(s): 132 Problem Description Recently, Peter likes to measure the humidity of leaves. He recorded a leaf…
题意: 给定一棵树,每个点可以覆盖自己和相邻的点, 求最少要多少个点覆盖图 #include <cstdio> #include <cstring> #include <iostream> #include <vector> using namespace std; + ; ; int N; vector<int> G[maxn]; int deg[maxn]; ]; ; //dp[u][0] //表示放,包括u及u的子树全部覆盖需要的最少结点数…
Description John Doe, a skilled pilot, enjoys traveling. While on vacation, he rents a small plane and starts visiting beautiful places. To save money, John must determine the shortest closed tour that connects his destinations. Each destination is r…
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=2041 题目分析:题目是真的水,不难发现规律涉及斐波那契数列,就直接上代码吧. 代码如下: #include <iostream> #include <cstring> using namespace std; int t, n, num[40]; int dp(int n) { if (n == 1 || n == 2) return num[n] = n; if (num[n] !=…
BUPT2017 wintertraining(15) #7E 题意 把数组A划分为k个区间,每个区间不超过L长度,每一个区间异或和之和为S.现在求:S不超过X,区间个数的最大值. 且A是这样给你的:A[1], P, Q.A[i]=(A[i-1]*P+Q)%M.M为\(2^{28}\). 题解 容易想到dp, dp[i] :前 i 个数最多划分多少个区间.s[i]为前缀异或和. dp[i]=max(dp[j]+1),i-L<j<i,且s[j]^s[i]\(\le\) x. dp[n]就是答案.…
F(x) Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 382    Accepted Submission(s): 137 Problem Description For a decimal number x with n digits (AnAn-1An-2 ... A2A1), we define its weight as F(x…
String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 11    Accepted Submission(s): 4 Problem Description Given 3 strings A, B, C, find the longest string D which satisfy the following rules:a)…
题目:http://poj.org/problem?id=2404 题意:有个n(n<=15)的点和m条无向边,每条边都有自己的权值.现在你要从某个点出发,每条边可以经过多次但要保证每条边至少走一次.现在你要找出一个方案,使得经过所有边的权值和最小,输出最小的权值和. 分析: 首先容易想到的是如果这个图G的每个点的度数都为偶数,那么G是欧拉图,那么一定存在欧拉回路,那么ans=∑每条边权值 如果图G不是欧拉图,那么必有偶数个奇度数的点. 如果我们把每条边都看作有无数条的话,那么原问题就是等价于走…
Corn Fields Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 4739   Accepted: 2506 Description Farmer John has purchased a lush new rectangular pasture composed of M by N (1 ≤ M ≤ 12; 1 ≤ N ≤ 12) square parcels. He wants to grow some yumm…
题意:给定一棵树,每个点有权值,每条边有边权(单向边).你可以选取K个黑点,使得从每个点移动到距离他最近的黑点的花费(距离*点权)的总和最小. n<=100 k<=50 w[i],a[i]<=10000 思路:见IOI2005龙凡解题报告 为什么要多叉转二叉?因为假设点U被选,这个被选点只会对U自己的儿子有影响,对U的兄弟并没有影响 dp[i,j,k]表示以i为根的子树,建j个节点,离i最近的被选点是k时的最小总和 \[ dp[i,j,k]=min\begin{cases} dp[l[i…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5375 题意就是:给你一串二进制码,里面可能含有'?'这个既可以表示0又可以表示1, 让我们把这个二进制串转成格雷码串,转换之后的串中如果第 i 位为 1 那么就加上对应给出的a[i],求最大加的结果ans: 例如: 00?0 1 2 4 8 二进制串可以是      0000或者0010 转化成格雷码之后是0000或者0011 0000价值总和为0: 0011的价值总和为a[3]+a[4]=12;…
这题真的太神辣,%了一发题解,原来还能这么搞QWQ 设\(A_{i,j}\)表示不加任何限制时,第\(i\)个格子会出现权值为\(j\)的史莱姆的概率,则有: \[A_{i,j}=A_{i,j-1}*A_{i-1,j-1}\] 再设\(B_{i,j}\)表示第一个放置的史莱姆权值为\(2\)时(之后放置的史莱姆不管),第\(i\)个格子会出现权值为\(j\)的史莱姆的概率,则有: \[B_{i,j}=B_{i,j-1}*A_{i-1,j-1}\] 好的现在就可以求第\(i\)个格子刚好会出现权值…
http://acm.hdu.edu.cn/showproblem.php?pid=4975 A simple Gaussian elimination problem. Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 579    Accepted Submission(s): 194 Problem Description Drag…
数数有多少 Time Limit: 2000/1000ms (Java/Others) Problem Description: 小财最近新开了一家公司,招了n个员工,但是因为资金问题,办公楼只有m间办公室,于是小财找到了作为程序员的你解决一个问题:将这n个不同的员工安排在m间相同的办公室(即办公室不可区分)一共有多少种方式?其中每间办公室可以安排任意个数的雇员(包括空办公室). Input: 输入有多组数据 每组数据输入两个数n m (0<m<=n<=100) Output: 输出安排…
上个月写的题qwq--突然想写篇博客 题目: 洛谷4294 分析: 斯坦纳树模板题. 简单来说,斯坦纳树问题就是给定一张有边权(或点权)的无向图,要求选若干条边使图中一些选定的点连通(可以经过其他点),且边权(或点权)之和最小.很明显,这样最终形成的是一棵树. 通常,斯坦纳树问题规模都比较小.考虑状压DP.用\(dp[u][S]\)表示让点\(u\)与集合\(S\)中所有关键点连通的最小花费.有如下两种转移: 第一,把两条到\(u\)的路径拼在一起,减去重合点\(u\)的点权,即(\(w_u\)…
我们预处理出来以i为结尾的最长回文后缀(回文自动机的构建过程中就可以求出)然后就是一个区间覆盖,因为我懒得写贪心,就写了线段树优化的DP. #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; const int N=101010; const int INF=1e9; int L…
题意:       给n个串(n>=2&&n<=10),每个串长度都是60,然后问所有串的最长公共子串,如果答案不唯一输出字典序最小的. 思路:直接暴力,枚举+KMP,后缀数组 枚举+KMP #include<stdio.h> #include<string.h> char a[12][62] ,b[62]; int next[62]; void Get_Next(char b[]) { int m = strlen(b); int j = 0 ,k =…
题面传送门 题意: 给出两个长度为 \(n\) 的数组 \(a,b\) 和一个整数 \(s\). 你可以任意重排数组 \(a,b\),总共 \((n!)^2\) 种方案. 现在又两个人 A,B 来玩游戏,两人轮流操作,A 先操作. 每次操作当前选手会取出各自数组的第一个元素 \(x\) 并将它删去,并令 \(s\) 减去 \(x\),如果发现 \(s\leq 0\),那么当前操作的人输,游戏结束. 求在所有 \((n!)^2\) 的方案中,有多少种能够使得 A 赢,答案模 \(10^9+7\).…
[题目链接] http://www.tsinsen.com/A1219 [题意] 给定一棵树,a[u][i]代表u结点分配i人的收益,可以随时改变a[u],查询(u,v)代表在u子树的所有节点,在u->v(不含u)路径上的节点分配人数的最优收益. [思路] 树链剖分:构造重链时先访问重儿子,因此一个重链的区间连续,同时一个子树的区间连续. 查询分为两部分:构造在u子树内分配人数i的最大收益ans1[i],以及构造在u->v路径上一个结点分配人数i的最大收益ans2[i].则ans=max{ a…
本文出自   http://blog.csdn.net/shuangde800 题目链接:点击打开链接 题目大意 有n个长度为m的二进制串,每个都是不同的. 为了把所有字符串区分开,你可以询问,每次可以问某位上是0还是1. 问最少提问次数,可以把所有字符串区分开来. 思路 f[s1][s2]: 表示提问的问题是{s1}集合,答案是{s2}时,还需要问几次才可以全部区分开 当问题集合为{s1}时, 如果还不能区分所有答案,那么就需要继续再问一个问题, 那么可以推出下一个问题的集合为: nextQu…
详见代码 #include <stdio.h> #include <algorithm> #include <string.h> using namespace std; ]; ][];//i到j的最大和是多少 int main() { // freopen("in.txt","r",stdin); int t; while(~scanf("%d",&t)) { ; i<=t; i++) { sc…