HDOJ 5255 魔法因子 (数学)
来源:互联网 发布:激光剑多少钱淘宝网 编辑:程序博客网 时间:2024/06/06 15:41
题意
给出一个x,求有多少个长度小于等于10位的数,乘以x之后最高位和最低位互换其他不变。
思路
因为只有两位是动的其他不动,所以我们令高位为high,低位为low,中间位是mid,那么我们能得到
因为x是小数不好进行后面的判断,又因为x最多6位,我们令a = 1e6*x,b=1e6(注意这里因为精度误差,我们取a=1e6*x+eps
然后我们得到
那么我们能得到mid必须满足mid末尾是0且长度小于i-1。
代码
#include <stdio.h>#include <string.h>#include <iostream>#include <algorithm>#include <vector>#include <queue>#include <stack>#include <set>#include <map>#include <string>#include <math.h>#include <stdlib.h>#include <time.h>using namespace std;#define LL long long#define Lowbit(x) ((x)&(-x))#define lson l, mid, rt << 1#define rson mid + 1, r, rt << 1|1#define MP(a, b) make_pair(a, b)const int INF = 0x3f3f3f3f;const int Mod = 1000000007;const int maxn = 12;const double eps = 1e-8;const double PI = acos(-1.0);LL ten[12];int main(){ //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int T; scanf("%d", &T); ten[0] = 1; for (int i = 1; i <= 12; i++) ten[i] = ten[i-1] * (LL)10; for (int ncase = 1; ncase <= T; ncase++) { double xx; scanf("%lf", &xx); LL a = (LL)(xx * 1000000 + eps); LL b = (LL)1000000; vector<LL> ans; //printf("%I64d\n", a); for (int i = 2; i <= 10; i++) { //printf("%I64d\n", ten[i-1]); for (LL r = 1; r <= 9; r++) for (LL l = 0; l <= 9; l++) { LL temp = b * (l * ten[i-1] + r) - a * (r * ten[i-1] + l); if (temp % (10 * (a - b)) == 0) { //printf("%d\n", i); LL mid = temp / 10 / (a - b); //printf("%d\n", i); LL div = mid; if (div < 0) continue; int cnt = 0; while (div) cnt++, div /= 10; if (cnt <= i - 2) ans.push_back(r * ten[i-1] + 10 * mid + l); } } } printf("Case #%d:\n", ncase); printf("%d\n", ans.size()); for (int i = 0; i < ans.size(); i++) if (!i) printf("%I64d", ans[i]); else printf(" %I64d", ans[i]); if (ans.size()) printf("\n"); } return 0;}
0 0
- HDOJ 5255 魔法因子 (数学)
- hdoj 1999 不可摸数 【数学求因子和】
- hdoj 5525 Product 【组合数学+质因子处理】
- 【百度之星初赛2】魔法因子|乘某个数首末位互换(数学,灵活题)
- 2015百度之星初赛2 1004 魔法因子(暴力+数学)
- hdu 5255 魔法因子 百度之星1004
- hdu5288数学枚举因子
- hdu 5255 魔法因子 打表 或者 乱搞 百度之星初赛第二场1004
- 魔法数学阅读笔记(Ⅰ)
- POJ1401 数学N!因子分解
- 问题 A: 因子个数 【数学】
- hdu6108(数学思维+因子)
- HDOJ - 4545 魔法串 简单DP
- HDOJ 4545 魔法串 (简单DP)
- ZZULIOJ 1882: 蛤玮的魔法【数学】
- hdoj 1214 圆桌会议【数学】
- 【数学】 HDOJ 5051 Fraction
- 【数学】 HDOJ 5035 Delivery
- linux随笔
- 别丢了你的母语——《语文常谈》书评
- shell学习-输出/输入
- HDFS中心缓存管理
- DOS命令之 attrib命令的使用
- HDOJ 5255 魔法因子 (数学)
- 第十三周项目二 阅读修改关于交通工具类的程序,回答问题,以理解相关内容(2)
- Word插入Latex公式的几种方式~(TeXsWord、EqualX、Aurora、向Office插入LaTeX公式的工具)
- 不同凡响(*)
- JAVA——Random
- 第十三周项目 动物这样叫 2.3
- 基于 CodeIgniter 的各类开源项目大全
- Xcode:duplicate declaration of method 'XXX'
- 从今天起,开启blog生活方式