Codeforces Round #247 (Div. 2)
A。水题。
遍历字符串对所给的对应数字求和即可。
B。简单题。
对5个编号全排列,然后计算每种情况的高兴度,取最大值。
C。dp。
设dp[n][is]表示对于k-trees边和等于n时,如果is==1表示存在边至少为d的边,如果is==0表示不存在边至少为d的边。
初始状态dp[0][0]=1。
//和为n且不存在至少为d的边的状态可以由所有不存在至少为d的边加一条小于d的边转移而来。
dp[n][0]=dp[n-1][0]+dp[n-2][0]+……+dp[n-(d-1)][0]
//和为n且存在至少为d的边的状态可以由 存在至少为d的边加一条小于d的边转移而来,无论是否存在至少d的边的状态加一条大于等于d的边 转移而来。
dp[n][1]=dp[n-1][1]+dp[n-2][1]+……+dp[n-(d-1)][0]+(dp[n-d][1]+dp[n-d][0])+(dp[n-(d+1)][1]+dp[n-(d+1)][0])+……+(dp[n-(d+1)][1]+dp[n-(d+1)][0])+……+(dp[n-k][1]+dp[n-k][0])
这个题状态设计的很巧妙,可以很好的降低时间复杂度。
- #include <cmath>
- #include <cstdio>
- #include <cstdlib>
- #include <iostream>
- #include <algorithm>
- #include <cstring>
- #include <string>
- #define mod 1000000007
- #define ll long long
- using namespace std;
- ll dp[][];
- int n,k,d;
- int main()
- {
- cin>>n>>k>>d;
- dp[][]=;
- ; i<=n; ++i)
- {
- ; j<d&&i-j>=; ++j)
- {
- dp[i][]+=dp[i-j][];
- dp[i][]%=mod;
- }
- ; j<=k&&i-j>=; ++j)
- {
- if(j<d)
- dp[i][]+=dp[i-j][];
- else
- dp[i][]+=dp[i-j][]+dp[i-j][];
- dp[i][]%=mod;
- }
- }
- cout<<dp[n][]<<endl;
- ;
- }
Codeforces Round #247 (Div. 2)的更多相关文章
- Codeforces Round #247 (Div. 2) ABC
Codeforces Round #247 (Div. 2) http://codeforces.com/contest/431 代码均已投放:https://github.com/illuz/Wa ...
- Codeforces Round #247 (Div. 2) B - Shower Line
模拟即可 #include <iostream> #include <vector> #include <algorithm> using namespace st ...
- Codeforces Round #247 (Div. 2) C题
赛后想了想,然后就过了.. 赛后....... 我真的很弱啊!想那么多干嘛? 明明知道这题的原型就是求求排列数,这不就是 (F[N]-B[N]+100000007)%100000007: F[N]是1 ...
- Codeforces Round #247 (Div. 2) C. k-Tree (dp)
题目链接 自己的dp, 不是很好,这道dp题是 完全自己做出来的,完全没看题解,还是有点进步,虽然这个dp题比较简单. 题意:一个k叉树, 每一个对应权值1-k, 问最后相加权值为n, 且最大值至少为 ...
- [Codeforces Round #247 (Div. 2)] A. Black Square
A. Black Square time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- Codeforces Round #247 (Div. 2) D. Random Task
D. Random Task time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- Codeforces Round #247 (Div. 2) C D
这题是一个背包问题 这样的 在一个k子树上 每个节点都有自己的k个孩子 然后 从原点走 走到 某个点的 和为 N 且每条的 长度不小于D 就暂停问这样的 路有多少条, 呵呵 想到了 这样做没有把他敲 ...
- 「专题训练」k-Tree(CodeForces Round #247 Div.2 C)
题意与分析(Codeforces-431C) 题意是这样的:给出K-Tree--一个无限增长的树,它的每个结点都恰有\(K\)个孩子,每个节点到它\(K\)个孩子的\(K\)条边的权重各为\(1,2, ...
- Codeforces Round #247 (Div. 2) B
B. Shower Line time limit per test 1 second memory limit per test 256 megabytes input standard input ...
随机推荐
- centos7 使用 omnibus包安装方式,安装 gitlab7.4
centos7 使用 omnibus包安装方式,安装 gitlab7.4 1: gitlab是一个开源的软件,类似于github.com那样的git代码管理仓库: 官网 https://about.g ...
- as中的陷阱
一.DisplayObject 1.有关width和height 对于一个对象A, 如果您设置了 width 属性,则 scaleX 属性会相应调整,并且会一直保存下来.尤其要注意的是如果A没有任何内 ...
- echarts折线图--数据交互
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...
- python 练习 17
#!/usr/bin/python # -*- coding: UTF-8 -*- f1 = 1 f2 = 1 for i in range(1,21): print '%12d %12d' % (f ...
- 实验一 Java开发环境的熟悉境的熟悉
- 运行结果: (一)命令行下Java程序开发 (二)Eclipse下Java程序开发.调试 设置断点和单步运行 单步运行:Step Into(快捷捷F5)和Step Over(快捷捷F5) 使程序直 ...
- Greenplum——升级的分布式PostgresSQL
Greenplum数据库基于PostgreSQL开源技术.本质上讲,它是多个PostgreSQL实例一起充当一个数据库管理系统.Greenplum以PostgreSQL 8.2.15为基础构建,在SQ ...
- MVP Community Camp 社区大课堂
MVP Community Camp 社区大课堂 微软技术社区大课堂开课啦!!!#MVPComCamp# 全中国微软最有价值专家MVP 在 3月21日周五全天齐聚北京国际会议中心为您呈 ...
- Solr 4.3.0 配置Data import handler时出错
启动solr的时候,居然出现了如下的错误: org.apache.solr.common.SolrException: RequestHandler init failure at or ...
- 转 Warning:MongoDB Replica Sets配置注意事项
我们知道,MongoDB不提供单机的数据安全性,取而代之的是提供了Replica Sets的高可用方案.官方文档中提到的案例是三个节点组成的Replica Sets,这样在其中任何一个节点宕机后都会自 ...
- System.Web.Optimization找不到引用
在程序包管理控制程序中录入:Install-Package Microsoft.AspNet.Web.Optimization,安装即可.