数学专项counting:UVa 11038
来源:互联网 发布:淘宝网淘我喜欢电脑版 编辑:程序博客网 时间:2024/05/21 17:51
纠结了很长时间,最后写出来了一段比较搓的代码,把样例和UVa论坛上的测试数据都过了,可就是WA……最后只能搜解题报告,才知道用排列组合可以相当巧妙的解出来。大概思想就是逐位考虑该位出现0的情况,具体就是用左边的排列数乘以右边的组合数,分该位为0和不为0两种情况考虑。
具体的看代码吧,参考了网上的解题报告,有不懂自行google吧。
#include <iostream>#include <fstream>#include <cstring>#include <cstdio>using namespace std;typedef long long LL;LL m,n;LL cal(LL x){ LL ans=0; LL dec=1; LL k=0; while(x>=10) { LL c=x%10; x/=10; if(c) ans+=x*dec; else ans+=(x-1)*dec+(k+1); k+=c*dec; dec*=10; } return ans;}int main(){ freopen("in.txt","r",stdin); while(cin>>m>>n) { if(m<0) break; LL a1=cal(m-1); if(m==0) a1--; LL a2=cal(n); cout<<a2-a1<<endl; } return 0;}
- 数学专项counting:UVa 11038
- 数学专项counting:UVa 10883
- 数学专项counting:UVa 10079
- 数学专项counting:UVa 10081
- 数学专项counting:UVa 580
- 数学专项counting:UVa 417
- 数学专项counting:UVa 11529
- 数学专项counting:UVa 11481
- 数学专项counting:UVa 10237
- 数学专项counting:UVa 10128
- 数学专项counting:LA 5846
- 数学专项counting:LA 3357
- 数学专项counting:LA 3720
- 数学专项counting:LA 3295
- 数学专项counting:LA 4064
- 数学专项game_theory:UVa 12293
- 数学专项game_theory:UVa 11892
- 数学专项game_theory:UVa 11927
- Java写的一个记事本工具
- android 程序错误处理全局处理 UncaughtExceptionHandler
- GPIO模拟I2C / I2C注意事项
- Standard Enhanced PCI to USB Host Controller注册表信息修复
- SUSE11+python2.6离线安装rsa模块
- 数学专项counting:UVa 11038
- C++ string 中Find函数举例
- 卖时间
- java小例子:打印一个近似圆,要求根据给定半径圆的大小随之发生改变
- 如何优化JavaScript脚本的性能
- spring中ApplicationContext的获取与使用
- MySQL索引背后的数据结构及算法原理
- 程序员的职业规划
- 编程原则