51nod数字1的数量
2024-08-28 12:16:12
这道题瞎jbyy了很久 方法可能很奇怪...
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#define LL long long
using namespace std;
int n,ans;
int f[][],w[];
void init(){
w[]=;
for(int i=;i<=;i++) w[i]=w[i-]*;
f[][]=;
for(int i=;i<=;i++)
for(int j=;j<=;j++){
for(int k=;k<=;k++)f[i][j]+=f[i-][k];
if(j==) f[i][j]+=w[i];
}
//for(int i=1;i<=10;i++,printf("\n")) for(int j=0;j<=9;j++) printf("%d ",f[i][j]);
}
int main()
{
init();
int sum=,ans=,v,k,tot=;
scanf("%d",&n); k=n;
while(w[sum]>n) sum--;
int now=n/w[sum];
for(int i=;i<now;i++) ans+=f[sum][i];
n=n%w[sum];
for(int i=sum-;i;i--){
v=n/w[i];
for(int j=;j<v;j++) ans+=f[i][j];
n=n%w[i];
}
v=k;
if(k%==) ans++;
v=v/;
while(tot<=sum){
if(v%==) ans=ans+k%w[tot]+;
tot++; v=v/;
}
printf("%d\n",ans);
return ;
}
最新文章
- 如何区别数据库删除语句drop与delete与truncate?
- [转载]TableView详解
- HDU 4752 Polygon(抛物线长度积分)
- Oracle中INT、FLOAT、NUMBER区别
- 关于PHPstorm 使用技巧
- 查看MySQL数据库的默认编码
- Awesome Delphi
- Linq to sql与EF零碎知识点总结
- Jenkins2 插件 Pipeline+BlueOcean 实现持续交付的初次演练
- Java的流程控制结构,细节详解
- Python版冒泡排序算法
- 解决“tar:Exiting with failure status due to previous errors”【转】
- ComputeSignature 中行支付签名报错(win7 64位系统)
- zz VS2010配色方案
- MySQL与PHP的连接教程步骤(图文)
- [教学] Delphi IDE 文件搜寻功能
- Vue组件的定义方式
- css3中的变形 transform详解
- unity初探之黑暗之光(2)
- Css入门课程 Css文本样式