UVa 11371 - Number Theory for Newbies
題目:給你一個數字n。將裡面每位的數又一次組合形成a,b。使得a-b最大且是9的倍數。
分析:數論。
題目要求a,b和n的位數同样,不能有前導0。
定理1:交換一個數字中的某兩個位的數,形成的新數組和原數字之差是9的倍數;
證明1:設數字為abc..i..j...xwz。当中每一个字母代表一个位。相应值能够同样,
那么任意交换两位i。j得到的新数字为abc..j..i..xwz,做差为9..90..0 *(i-j)。
所以一定是9的倍数,得证。
通過上面定理能够繼續證明。随意交換随意位數字形成的新數字和原數字的差是9的倍數;
所以取a為最大組合。即遞減序,b為遞增序就可以。
可是,這裡要求位數同样,所以b取首尾不是0的數字的最小值,先取遞增序。
然後,交換第一個非0數和首位的1就可以。
說明:╮(╯▽╰)╭。
#include <algorithm>
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <cmath> using namespace std; bool cmp1(char a, char b)
{
return a < b;
} bool cmp2(char a, char b)
{
return a > b;
} int main()
{
char buf[31];
while (gets(buf)) {
int len = strlen(buf);
long long A = 0LL, B = 0LL;
sort(buf, buf+len, cmp1);
if (buf[0] == '0') {
for (int i = 0; i < len; ++ i)
if (buf[i] != '0') {
swap(buf[i], buf[0]);
break;
}
}
for (int i = 0; i < len; ++ i)
A = A*10LL + buf[i]-'0';
sort(buf, buf+len, cmp2);
for (int i = 0; i < len; ++ i)
B = B*10LL + buf[i]-'0';
printf("%lld - %lld = %lld = 9 * %lld\n",B,A,B-A,(B-A)/9LL);
}
return 0;
}
UVa 11371 - Number Theory for Newbies的更多相关文章
- UVA 1558 - Number Game(博弈dp)
UVA 1558 - Number Game 题目链接 题意:20之内的数字,每次能够选一个数字,然后它的倍数,还有其它已选数的倍数组合的数都不能再选,谁先不能选数谁就输了,问赢的方法 思路:利用dp ...
- 2016级算法第二次上机-F.ModricWang's Number Theory II
891 ModricWang's Number Theory II 思路 使得序列的最大公约数不为1,就是大于等于2,就是找到一个大于等于2的数,它能够整除序列中的所有数. 考虑使得一个数d整除数组中 ...
- 【BZOJ4026】dC Loves Number Theory 分解质因数+主席树
[BZOJ4026]dC Loves Number Theory Description dC 在秒了BZOJ 上所有的数论题后,感觉萌萌哒,想出了这么一道水题,来拯救日益枯竭的水题资源. 给 ...
- uva 11885 - Number of Battlefields(矩阵高速幂)
题目连接:uva 11885 - Number of Battlefields 题目大意:给出周长p,问多少种形状的周长为p的,而且该图形的最小包围矩阵的周长也是p,不包含矩形. 解题思路:矩阵高速幂 ...
- BZOJ_4026_dC Loves Number Theory _主席树+欧拉函数
BZOJ_4026_dC Loves Number Theory _主席树+欧拉函数 Description dC 在秒了BZOJ 上所有的数论题后,感觉萌萌哒,想出了这么一道水题,来拯救日益枯 竭 ...
- Number Theory Problem(The 2016 ACM-ICPC Asia China-Final Contest 找规律)
题目: Mr. Panda is one of the top specialists on number theory all over the world. Now Mr. Panda is in ...
- [E. Ehab's REAL Number Theory Problem](https://codeforces.com/contest/1325/problem/E) 数论+图论 求最小环
E. Ehab's REAL Number Theory Problem 数论+图论 求最小环 题目大意: 给你一个n大小的数列,数列里的每一个元素满足以下要求: 数据范围是:\(1<=a_i& ...
- 题解-Ehab's REAL Number Theory Problem
Ehab's REAL Number Theory Problem 前置知识 质数 分解质因数 无向无权图最小环<讲> Ehab's REAL Number Theory Problem/ ...
- UVA 10706 Number Sequence (找规律 + 打表 + 查找)
Problem B Number Sequence Input: standard input Output: standard output Time Limit: 1 second A singl ...
随机推荐
- android armeabi与armeabi-v7a
我在armeabi下增加了百度的库: libBaiduMapSDK_v2_4_1.so 可是却报错说找不到库.我发如今libs下还有另外一个目录: armeabi-v7a 然后我把libBaiduMa ...
- DHCP的工作原理
什么是dhcp?它是如何实现的? DHCP称为动态主机配置协议.DHCP服务允许工作站连接到网络并且自动获取一个IP地址.配置DHCP服务的服务器可以为每一个网络客户提供一个IP地址.子网掩码.缺省网 ...
- Hibernate 一对一关联映射
package com.entity; import javax.persistence.Entity; import javax.persistence.OneToOne; @Entity publ ...
- Python中的循环与跳出
--start-- for循环: for i in range(3): user_input = input("Your username:") passwd = int(inpu ...
- LVS集群的体系结构
2.LVS主要组成部分为: 负载调度器(load balancer/ Director),它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称 ...
- Windows Phone 8初学者开发—第21部分:永久保存Wav音频文件
原文 Windows Phone 8初学者开发—第21部分:永久保存Wav音频文件 第21部分:永久保存Wav音频文件 原文地址:http://channel9.msdn.com/Series/Win ...
- OPENSSL库的使用-DES篇
一.单DES算法ECB模式加解密 1.使用函数DES_set_key_unchecked设置密钥 2.使用函数DES_ecb_encrypt来进行数据加解密 void DES_ecb_encrypt( ...
- jsp 分页(数据库读取数据)
<%@ page contentType="text/html; charset=gb2312"%> <%@ page language="java&q ...
- javascript实现快速排
其基本思路应该是排成两部分单独记录,确定枢轴,实施枢轴到左侧值我们都小于枢轴值.枢轴向右大于枢轴值.这样子不断递归下去 function quicksort(arr,low,high){ var pi ...
- js遍历对象的数组
遍历数组: 1.js关键for遍历 2.jquery提供each功能 ----------------------------------- $.each(array, function(){ ...