tjut 3022
来源:互联网 发布:java 字符串转10进制 编辑:程序博客网 时间:2024/06/05 05:54
#include<iostream>#include<stdio.h>#include<string.h>#include<queue>#include<cmath>#include<stack>#include<algorithm>#define LL long long using namespace std; const int N=901;const int M=8101;int digits[N][M];int num[N][M]; int dp(int a,int b){ if(digits[a][b]!=-1) return digits[a][b]; if(a==0||b==0) { if(a==0&&b==0) digits[a][b]=0; else digits[a][b]=101; return digits[a][b]; } if(a>b) { digits[a][b]=101; return digits[a][b]; } digits[a][b]=101; int k; for(int i=1;i<=9;++i) { if(a-i>=0&&b-i*i>=0) { k=dp(a-i,b-i*i); if(k+1<digits[a][b]) { num[a][b]=i; digits[a][b]=k+1; } } } return digits[a][b];}void print(int i,int a,int b){ printf("%d",num[a][b]); if(i>1) print(i-1,a-num[a][b],b-num[a][b]*num[a][b]);}int main(){ memset(digits,-1,sizeof(digits)); memset(num,-1,sizeof(num)); int T; scanf("%d",&T); while(T--) { int n,m; scanf("%d %d",&n,&m); int k=101; if(n<=m&&n<N&&m<M) k=dp(n,m); if(k==101) printf("No solution"); else { print(k,n,m); } printf("\n"); } return 0;}
0 0
- tjut 3022
- tjut 5289
- tjut 5288
- tjut 5294
- tjut 2586
- tjut 5296
- tjut 5297
- tjut 5299
- tjut 5384
- tjut 5387
- tjut 5386
- tjut 5381
- tjut 5400
- tjut 5399
- tjut 5396
- tjut 5398
- tjut 5412
- tjut 5410
- TortoiseGit和msysGit安装及使用笔记(windows下使用上传数据到GitHub)
- OkHttpUtils
- 博客网站定时外链检查脚本
- 初识Lucene(下)
- zabbix利用lld监控memcached
- tjut 3022
- [Java JVM] Hotspot GC研究- 开篇&对象内存布局
- [leetcode] 153. Find Minimum in Rotated Sorted Array
- C++模板深入理解
- 计算机相关学习网站
- GMap 自定义Marker以及规则图形的绘制
- MAC几款好用软件推荐
- 一次使用c#的canvas心得
- iOS开发——测试证书的创建