cf 493 div.1 B

题意:

给出1,5,10,50,问用n个的和可得多少个数(不计顺序)

n <= 1e9

题解:

首先n确定,不妨都减一得到0,4,9,49

然后考虑用最小表示法去重。因为超过9个4可以被若干个9和若干个0替代,所以4的个数不可能超过8。

同理,枚举4和9总共选多少个,但sum-49 *n已经计算过的要舍去,统计答案即可

还有一种方法是打表,发现n>=12答案线性,然后用n=12和n=13推公式


#include<bits/stdc++.h>
using namespace std;
#define maxn 10020

int n,cnt;
long long ans;
int vis[maxn];

struct node{
	int d,cnt;
	bool operator < (node a)const{
		return d < a.d;
	}
}dt[maxn];
int dfs(int x){
	if ( x < 0 ) return 0;
	if ( vis[x] ) return 1;
	return dfs(x - 49);
}
int main(){
	scanf("%d",&n);
	for (int i = 0 ; i <= 8 ; i++){
		for (int j = 0 ; j <= 49 ; j++){
			if ( i + j > n ) continue;
			int x = i * 4 + j * 9;
			dt[++cnt] = (node){x,i + j};
		}
	}
	sort(dt + 1,dt + cnt + 1);
	for (int i = 1 ; i <= cnt ; i++){
		int x = dt[i].d , c = dt[i].cnt;
		if ( !dfs(x) ) ans += n - c + 1; //从小到大枚举,dfs时才不会出锅
		vis[x] = 1;
	}
	cout<<ans<<endl;
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<div id="wea_rich_text_default_font" style="font-family:微软雅黑;font-size:12;"><p><img alt="" src="/weaver/weaver.file.FileDownload?fileid=aaa9aee4717d33272bd7ea028fa03118b693919f23b18febf9f6cee1158e8f4cf027542c71c8cf98d63770ccdf3bd1750e6b92e28c43dccd4" /></p><div class="ckeditor-html5-video" data-widget="html5video" style="text-align:left"><video controls="controls" src="/weaver/weaver.file.FileDownload?fileid=aad6f413f83191673980c5ee24b412880d6b9e8703caca411faec3276fe8133f5fa7e34630ca89ace63770ccdf3bd175071362141037cfb4e&download=1" style="max-width:100%"> </video></div><table border="1" cellpadding="1" style="width:500px;"> <tbody> <tr> <td style="padding: 1px;">1</td> <td style="padding: 1px;">1</td> </tr> <tr> <td style="padding: 1px;">2</td> <td style="padding: 1px;">2</td> </tr> <tr> <td style="padding: 1px;">3</td> <td style="padding: 1px;">3<a href="http://localhost:8080/wui/index.html#/main/portal/portal-1-1?menuIds=0,1&menuPathIds=0,1&_key=zq8830" target="_blank">http://localhost:8080/wui/index.html#/main/portal/portal-1-1?menuIds=0,1&menuPathIds=0,1&_key=zq8830</a></td> </tr> </tbody></table><p>测试<a href="http://localhost:8080/wui/index.html#/main/portal/portal-1-1?menuIds=0,1&menuPathIds=0,1&_key=zq8830" target="_blank">http://localhost:8080/wui/index.html#/main/portal/portal-1-1?menuIds=0,1&menuPathIds=0,1&_key=zq8830</a></p><p> </p><p>修改一下吧 qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq<img alt="" src="/weaver/weaver.file.FileDownload?fileid=a7617945ec5f52ec80aaa43ee8504de0a1b14d5eca4a98834494c85349762c626dec7ba8d0da277106ee600d27743f4e44f710fbddd167603" /></p></div>
最新发布
06-01

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值