hdu 5109 同余定理+枚举+构造法求解
来源:互联网 发布:linux安装多个jdk版本 编辑:程序博客网 时间:2024/06/06 03:34
因为S是T的子串,那么我们可以构建数XSY,那么这个数就是num = (X*10^strlen(S) + S )*10*strlen(Y) + Y,因为num%a == 0 ,所以根据同余模定理,
num%a == ((x%a) * (( 10^strlen(S) + S%a) *10*strlen(Y) )%a + Y%a,
设 mod = ( num - Y%a ) %a;
所以 Y%a = ( a - mod ) %a;
所以只需枚举Y的长度和x%a,此问题得解
#include <cstdio>#include <algorithm>#include <cstring>#include <iostream>using namespace std;typedef long long LL;int main ( ){ LL a , s, b; char str[10]; while ( ~scanf ( "%lld" , &a ) ) { scanf ( "%s" , &str ); LL base = 1; int len = strlen ( str ); if ( len == 1 && str[0] =='0' ) { puts ( "0" ); continue; } for ( int i = 0 ; i < len ; i++ ) base *= 10L; sscanf ( str , "%I64d" , &s ); b = -1; for ( LL i = 1 ; i <= 10000 ; i *= 10 ) for ( LL j = (str[0]=='0'?1:0);j < a ; j++ ) { LL temp = ( j*base + s ) * i; LL y = ( a - temp%a ) %a; if ( y < i ) { temp += y; if ( b == -1 || temp < b ) b = temp; } } printf ( "%I64d\n" , b/a); }}
0 0
- hdu 5109 同余定理+枚举+构造法求解
- hdu 1573 同余定理
- codeforces #306 550C C. Divisibility by Eight(同余模定理+枚举)
- Hello Kiki hdu 3579 求解一元线性同余方程组ps:中国剩余定理
- poj 1006+hdu 1788(中国剩余定理求解同余方程组)
- hdu 5106 同余定理+组合数学+快速幂
- hdu 2035 人见人爱A^B(同余定理+快速幂)
- HDU 3123 GCC (同余模定理)
- hdu 2099 数论-同余定理
- HDU 1212 Big Number(同余定理)
- HDU 1104 Remainder(BFS 同余定理)
- HDU 3123 GCC【同余模定理】
- HDU 4474 同余模定理+BFS
- 同余定理在算法求解中的应用
- poj2635 同余定理 + 素数筛法
- 同余定理
- 同余定理
- 同余定理
- 【hadoop】 1004-hdfs验证
- 关于IOS适配的一些心得
- FU-A分包方式,以及从RTP包里面得到H.264数据和AAC数据的方法
- dfs之图的遍历——城市地图
- 【hadoop-HDFS】 抛出错误 (java.io.IOException: config())
- hdu 5109 同余定理+枚举+构造法求解
- Drainage Ditches
- POJ 1797 Heavy Transportation(kuangbin带你飞 专题四:最短路)
- 数据库统计不同字段数量时的sql语句
- 【hadoop】 1005-yarn测试
- Java restful之使用Apache olingo库来将JPA操作自动转化为RESTful
- MyEclipse 中Tomcat部署项目:Undefined exploded archive location
- ScheduledThreadPoolExecutor实现原理
- 黑马程序员——IO--Input和Output基础