UVA 1645 Count】的更多相关文章

题目大意:输入n,统计有多少个n个结点的有根树,使得每个深度中所有结点的子结点数相同.结果模1000000007. 思路:根据题意,每个结点的每个子树都是相同的.所以n结果为n-1的所有约数的结果加起来. 示意图: 代码如下: #include <iostream> #include <sstream> #include <cstdio> #include <cstring> #include <cmath> #include <strin…
https://vjudge.net/problem/UVA-1645 题意:有多少个n个节点的有根树,每个深度中所有节点的子节点数相同 dp[i] 节点数为i时的答案 除去根节点还有i-1个点,如果j是i-1的约数,说明能平均分成j棵子树 每棵子树有(i-1)/j个节点,所以可以递推 递推:子问题 #include<cstdio> using namespace std; ; ]; int main() { dp[]=; ;i<=;i++) ;j<i;j++) )%j==) dp…
题意:给定一棵 n 个结点的有根树,使得每个深度中所有结点的子结点数相同.求多棵这样的树. 析:首先这棵树是有根的,那么肯定有一个根结点,然后剩下的再看能不能再分成深度相同的子树,也就是说是不是它的约数.那么答案就有了, 我们只要去计算n-1的约数有多少棵不同的树,然后就有递推式了. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024000000") #include <cstdio> #include <str…
题意:输入n(n <=1000),统计有多少个n结点的有根树,使得每个深度中所有结点的子结点数相同.输出数目除以109+7的余数. 分析: 1.dp[i],i个结点的有根树个数 2.假设n=7,则根结点之外有6个结点. 根的子树有四种情况: (1)6个结点数为1的子树 (2)3个结点数为2的子树 (3)2个结点数为3的子树 (4)1个结点数为6的子树 #pragma comment(linker, "/STACK:102400000, 102400000") #include&l…
题目链接:uva 10712 - Count the Numbers 题目大意:给出n,a.b.问说在a到b之间有多少个n. 解题思路:数位dp.dp[i][j][x][y]表示第i位为j的时候.x是否前面是相等的.y是否已经出现过n.对于n=0的情况要特殊处理前导0,写的很乱.搓死. #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using nam…
题意: 有多少个n个节点的有根树,满足每层节点的子节点个数相同,输出该数目除以1e9+7的余数. 分析: 这种题目就属于那种,看起来很高冷,读完题更高冷.想了N久想不出来,一搜题解,卧槽,这么sb的题我都不会. 言归正传,根据题意,这棵树是关于根节点对称的,对称性非常好,根节点下面的子树也完全相同. 所以就有了如下递推关系: #include <cstdio> #include <cmath> ; + ; ]; void Init() { ans[] = ; ; i <= m…
题目链接:UVa 10007 题意:统计n个节点的二叉树的个数 1个节点形成的二叉树的形状个数为:1 2个节点形成的二叉树的形状个数为:2 3个节点形成的二叉树的形状个数为:5 4个节点形成的二叉树的形状个数为:14 5个节点形成的二叉树的形状个数为:42 把n个节点对号入座有n!种情况 所以有n个节点的形成的二叉树的总数是:卡特兰数F[n]*n! 程序: import java.math.BigInteger; import java.util.Scanner; public class Ma…
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=948 卡特兰数*n! import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[]args) { Scanner cin=new Scanner(Sys…
题目:一个数的素因子的和假设也是素数就叫做DePrimes,统计给定区间内的DePrimes. 分析:数论.本题使用用一种素数的筛法,欧拉筛法,也加线性筛法. 这样的方法,每次删选分两种情况:1.素因子不反复:2.素因子反复: 利用这个性质,统计DePrimes,假设素因子不同就加和,否则就取对应的最小不同集合: 打表计算,做差输出就可以. 说明:线性筛法,比传统的筛法在数据量大时会快(⊙_⊙). #include <iostream> #include <cstdlib> #in…
除了根节点以外,有n-1个节点,然后就看n-1的因数有那些,所有因数加起来(递推)就好了. #include<cstdio> #define REP(i, a, b) for(int i = (a); i < (b); i++) using namespace std; const int MOD = 1e9 + 7; const int MAXN = 1123; int ans[MAXN]; void init() { ans[1] = 1; REP(i, 2, MAXN) REP(j…
Time limit 3000 ms OS Linux Write a program, that computes the number of different prime factors in a positive integer.InputThe input tests will consist of a series of positive integers. Each number is on a line on its own. Themaximum value is 100000…
文档首页 英文版文档 本作品采用知识共享署名-非商业性使用 3.0 未本地化版本许可协议进行许可. Node.js v0.10.18 手册 & 文档 索引 | 在单一页面中浏览 | JSON格式 目录 关于本文档 稳定度 JSON 输出 概述 全局对象 global process console 类: Buffer require() require.resolve() require.cache require.extensions __filename __dirname module e…
 Count the Trees  Another common social inability is known as ACM (Abnormally Compulsive Meditation). This psychological disorder is somewhat common among programmers. It can be described as the temporary (although frequent) loss of the faculty of sp…
UVA 357 Let Me Count The Ways(全然背包) http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=293 题意: 有5种硬币: 1分 5分 10分 25分 和50分. 如今给你一个面值n, 问你有多少种方法能利用上述硬币组合出n分的金钱. 分析: 典型的全然背包问题. 本题的限制条件: 硬币钱数正好等于n 本题的目的条件…
UVA.357 Let Me Count The Ways (DP 完全背包) 题意分析 与UVA.UVA.674 Coin Change是一模一样的题.需要注意的是,此题的数据量较大,dp数组需要使用long long 类型:另外输出方案为1个和多个的时候,语句是不同的. 代码总览 /* Title:UVA.357 Author:pengwill Date:2017-2-16 */ #include <iostream> #include <cstdio> #include &l…
题目连接:357 - Let Me Count The Ways 题目大意:有5种硬币, 面值分别为1.5.10.25.50,现在给出金额,问可以用多少种方式组成该面值. 解题思路:和uva674是一样的, 只是上限不一样, 还有注意下输出. #include <stdio.h> #include <string.h> const int N = 30005; const int val[5] = {1, 5, 10, 25, 50}; long long cnt[N]; void…
题目大意:也是硬币兑换问题,与147.674用同样的方法即可解决. #include <cstdio> #include <cstring> #define MAXN 30001 ] = {, , , , }; long long dp[MAXN]; int main() { #ifdef LOCALi freopen("in", "r", stdin); #endif memset(dp, , sizeof(dp)); dp[] = ; ;…
http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=83 147 - Dollars Time limit: 3.000 seconds Dollars New Zealand currency consists of $100, $50, $20, $10, and $5 notes and $2, $1, 50c, 20c, 10c and…
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=3270 2017年的第一题. 题意:给出必须要经过的边,找一条经过所有边的最短道路. 一开始一点想法都没有,后来网上看了下才明白是要用dfs和欧拉回路来做的. 欧拉回路是这样说的:如果一个无向图是连通的,且最多只有两个奇点,则一定存在欧拉道路.如果有两个奇点,则必须从其中一个奇点出发,另一个…
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=show_problem&problem=635 题目:给出了如下算法: step 1:选择任意一个正整数A为序列的第一个数: step 2:如A=1或者A>L,则停止 step 3:如A为偶数,则A=A/2,执行step 2: step 4:如A为奇数,则A=3A+1,执行step 2: 现在给…
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=92 题意:输入文本,找出满足:此单词不可以排序得到文本其它单词,不分大小写. 需要注意的是: vector基本操作: algorithm头文件定义了一个count的函数,其功能类似于find.这个函数使用一对迭代器和一个值做参数,返回这个值出现次数的统计结果, 讲的不错:http://www…
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=show_problem&problem=355 题目:每行25个字符,左开始为X,右边也是X,中间为空格B:当所有行的左右X相互向内移动,直到有一行左右X相遇:这时所有行中间一共还有多少空格B. 思路:中间空格最少的行一定最先相遇,即X最多的行最先相遇:当X最多行相遇时,每行减少的空格数相同,则用X最…
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2832 按照正常的字典树建树会MLE 所以需要采用树的压缩算法来建树 #include <cstdio> #include <iostream> #include <cstring> #define maxn 4000010 #define ma…
题目来源:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=3&page=show_problem&problem=45  SCUD Busters  Background Some problems are difficult to solve but have a simplification that is easy to solve. Rather than…
Easy Problem from Rujia Liu? Though Rujia Liu usually sets hard problems for contests (for example, regional contests like Xi'an 2006, Beijing 2007 and Wuhan 2009, or UVa OJ contests like Rujia Liu's Presents 1 and 2), he occasionally sets easy probl…
#include<bits/stdc++.h> using namespace std; int main() { unsigned ]; memset(dp,,sizeof(dp)); dp[]=; ;i<=;i++) ;j++) dp[j]=dp[j]+dp[j-i]; int n; while((scanf("%d",&n))!=EOF) { printf("%I64d\n",dp[n]); } ; ; } 这两道题基本思路是一样的,…
Count the Trees Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 1248    Accepted Submission(s): 812 Problem DescriptionAnother common social inability is known as ACM (Abnormally Compulsive Medi…
题目链接:https://uva.onlinejudge.org/external/101/10118.pdf 参考:http://www.cnblogs.com/kedebug/archive/2013/04/07/3006493.html 刚开始,我想到了dp状态的描叙,d(a,b,c,d) 从 4堆里面拿走 a,b,c,d 的最优值,但是好难实现啊,dp顺序感觉是可以用LCS的方案,但是,怎么保存自己口袋里面有哪些呢? ——hash. 最后参考了一下大神的方案,记忆化写的,Orz. 嗯,像…
题目链接:https://uva.onlinejudge.org/external/12/1220.pdf 题意: 公司n个人,形成一个数状结构,选出最大独立集,并且看是否是唯一解. 分析: d(i) 是 节点 i 的最优值, i 只有两种决策,就是选和不选. 转移方程: d(i) = max {1+Σ1d(j),Σ2d(j)}; Σ1是所有孙子节点,Σ2是所有儿子节点. 那么状态的定义d(i,0),节点 i 不选,d(i,1),节点 i 选. 那么状态转移方程就是: 是否唯一 f(v,0) =…
String Compression Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Practice UVA 1351 Appoint description:  System Crawler  (2015-08-21) Description   Run Length Encoding(RLE) is a simple form of compression. RLE c…