博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 997B Roman Digits(半打表)
阅读量:5226 次
发布时间:2019-06-14

本文共 825 字,大约阅读时间需要 2 分钟。

题意:I=1, V=5, X=10, L=50,n个位置可任意放4个数,n个数组成的值是每一位的值的和,要求最后代表的值不同的种类数。

缺欠的是做题的思路,当看到这道题发现n是10^9级别,第一反应是得找到一个公式。但怎么找没想出来。

满足i+j+k+p = n (i,j,k,p分别是1,5,10,50取的个数),我们可以用n^3代价(枚举i,j,k)n比较小的时候的答案,并试着从枚举得到的答案里找到规律。

事实也确实能从中找到规律,n从12开始就是等差数列了,方差49

#include 
using namespace std;int a[]={
1,5,10,50};long long num=0;int dfs(int n){ map
mp; mp.clear(); num=0; for(int i=0;i<=n;i++) { for(int j=0;i+j<=n;j++) { for(int k=0;i+j+k<=n;k++) { int l=i+j*5+k*10+(n-i-j-k)*50; if(l>=0&&!mp[l]) {num++;mp[l]=1;} } } } return num;}int main(){ ios::sync_with_stdio(false);cin.tie(0); long long n; cin>>n; if(n<=20) cout<
<

 

转载于:https://www.cnblogs.com/Fy1999/p/9503464.html

你可能感兴趣的文章
Windows Server 2008 R2忘记管理员密码后的解决方法
查看>>
IE11兼容IE8的设置
查看>>
windows server 2008 R2 怎么集成USB3.0驱动
查看>>
Foxmail:导入联系人
查看>>
vue:axios二次封装,接口统一存放
查看>>
vue中router与route的区别
查看>>
js 时间对象方法
查看>>
网络请求返回HTTP状态码(404,400,500)
查看>>
Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
查看>>
Mac下使用crontab来实现定时任务
查看>>
303. Range Sum Query - Immutable
查看>>
图片加载失败显示默认图片占位符
查看>>
【★】浅谈计算机与随机数
查看>>
《代码阅读方法与实现》阅读笔记一
查看>>
解决 sublime text3 运行python文件无法input的问题
查看>>
javascript面相对象编程,封装与继承
查看>>
Atlas命名空间Sys.Data下控件介绍——DataColumn,DataRow和DataTable
查看>>
Java中正则表达式的使用
查看>>
算法之搜索篇
查看>>
新的开始
查看>>