hdu 5920 Ugly Problem(CCPC长春,构造回文数)
来源:互联网 发布:巨杉数据库 文档 编辑:程序博客网 时间:2024/05/17 21:59
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5920
题意:给定一个不大于 10^1000 的正整数s,构造不超过50个回文数,使得这些数之和恰好是s。
题解:每次用不超过s的最大回文数去减s,这样s的位数会减半,需要实现一个高精度减法。
代码:
#include<bits/stdc++.h>using namespace std;const int N=1000+9;bool getPal(char *s) { //得到回文数 int n=strlen(s); if(n==1)return 1; if(n==2&&s[0]=='1') { s[0]='9'; s[1]=0; return 0; } s[(n+1)/2-1]--; for(int i=(n+1)/2-1; i>0; i--) { if(s[i]<'0')s[i]+=10,s[i-1]--; else break; } if(s[0]=='0') { for(int i=0; i<n; i++)s[i]=s[i+1]; n--; } for(int i=(n+1)/2; i<n; i++) s[i]=s[n-i-1]; return 0;}bool subStr(char *a,char *b) { //减去回文数 int na=strlen(a); int nb=strlen(b); for(int i=na-1,j=nb-1; j>=0; i--,j--) { if(a[i]>=b[j])a[i]=a[i]-b[j]+'0'; else a[i]=a[i]+10-b[j]+'0',a[i-1]--; } int p; for(p=0; a[p]=='0'; p++); if(p==na)return 1; for(int i=0; p<=na; p++,i++)a[i]=a[p]; return 0;}char s[N],ans[50][N];int cnt;int main() { //freopen("f.txt","r",stdin); int T; scanf("%d",&T); for(int cas=1; cas<=T; cas++) { scanf("%s",s); for(cnt=0;; cnt++) { strcpy(ans[cnt],s); if(getPal(ans[cnt])||subStr(s,ans[cnt]))break; } printf("Case #%d:\n%d\n",cas,cnt+1); for(int i=0; i<=cnt; i++) printf("%s\n",ans[i]); } return 0;}
0 0
- hdu 5920 Ugly Problem(CCPC长春,构造回文数)
- HDU 5920 Ugly Problem CCPC长春赛区 贪心
- HDU 5920 Ugly Problem (大数模拟 构造回文串)
- HDU 5920 Ugly Problem (JAVA高精度+回文数)
- hdu 5920 Ugly Problem 2016ACM/CCPC长春赛区现场赛J
- ccpc 长春站 J 题 Ugly Problem
- hdu 5920 Ugly Problem(构造题)
- HDU 5920 Ugly Problem 【模拟】 (2016中国大学生程序设计竞赛(长春))
- Ugly Problem(hdu 5920 && 2016ICPC长春现场赛模拟题)
- HDU 5914 Triangle (2016-ccpc-长春)
- HDU Ugly Problem 2016中国大学生程序设计竞赛(长春)-重现赛
- Hdu 5920 Ugly Problem
- HDU 5920Ugly Problem
- hdu 5920 Ugly Problem 贪心构造 大整数
- hdu5920 Ugly Problem(构造)
- HDU 5920 Ugly Problem(模拟)
- 2016中国大学生程序设计竞赛(长春) Ugly Problem
- hdu 5918 Sequence I (CCPC长春,KMP)
- servlet简介
- linkedHashMap的应用
- 2016CCPC东北地区大学生程序设计竞赛【01/03/05/06/08】
- 关于程序集生成失败-引用的第三方DLL没有强名称的解决办法
- Android中最常用的适配器:PagerAdapter与FragmentPagerAdapter
- hdu 5920 Ugly Problem(CCPC长春,构造回文数)
- Android Studio 注释模板
- 驱动开发入门——NTModel
- TP-LINK NVR与IPC的使用方法
- angularjs directive link 属性 问题
- Gson使用及多层嵌套 json 定义类
- 52.[Python]使用threading进行多线程编程
- 使用ReactiveCocoa实现iOS平台响应式编程
- 单例模式——国庆收心