[CodeForces 490C]Hacking Cypher[math]
来源:互联网 发布:银行数据录入员不靠谱 编辑:程序博客网 时间:2024/05/21 09:44
题目链接:[CodeForces 490C]Hacking Cypher[math]
题意分析:
将一个长度<=1e6的数字切成两半,使得左半边能被a整除,后半边能被b整除,输出任意一种满足条件的切法,不能有前导零。(a,b<=1e8)
解题思路:
设当前数为num,考虑从左往右,每新增一个数字cur,当前数为num = num * 10 + cur。每一次取模即可判断是否能被a整除,同理,从右往左,每一次新的数就是num = 10^x * cur + num。然后标记下可行位置,最后判断一遍即可。
个人感受:
从小处往大处慢慢考虑,这种思想还是不能熟练使用啊。之前老想着除数和被除数的关系,一直不能解。
具体代码如下:
#include<iostream>#include<string>#define ll long longusing namespace std;const int MAXN = 1e6 + 111;bool ok[2][MAXN];int main(){ string digit; ll a, b, num = 0; cin >> digit >> a >> b; for (int i = 0; i < digit.length(); ++i) { ll cur = digit[i] - '0'; num = (((num % a) * (10 % a)) % a + cur % a) % a; if (!num) ok[0][i] = 1; } num = 0; int base = 1; for (int i = digit.length() - 1; i >= 0; --i) { ll cur = digit[i] - '0'; num = (((cur % b) * (base % b)) %b + num % b) % b; if (!num && cur) ok[1][i] = 1; base = (base * 10) % b; } for (int i = 1; i < digit.length(); ++i) { if (ok[0][i - 1] && ok[1][i]) { cout << "YES\n"; for (int j = 0; j <= i - 1; ++j) cout << digit[j]; cout << '\n'; for (int j = i; j < digit.length(); ++j) cout << digit[j]; cout << '\n'; return 0; } } cout << "NO\n"; return 0;}
0 0
- [CodeForces 490C]Hacking Cypher[math]
- CodeForces 490C Hacking Cypher
- CodeForces 490C - Hacking Cypher
- codeforces 490C Hacking Cypher
- CodeForces 490C Hacking Cypher
- 【CODEFORCES】 C. Hacking Cypher
- Codeforces 490C Hacking Cypher(暴力)
- Codeforces 490C Hacking Cypher 暴力
- codeforces 490-C. Hacking Cypher(暴力)
- Codeforces 490C Hacking Cypher【前缀模+后缀模+暴力】
- codeforces 490C Hacking Cypher(大数逆向取模)
- Hacking Cypher(CF--490C
- 【Codefroces 490 C Hacking Cypher】+ dp
- C. Hacking Cypher
- Codeforces Round #279 (Div. 2)C. Hacking Cypher
- Codeforces Round #279 (Div. 2) C. Hacking Cypher
- Codeforces Round #279 (Div. 2) C. Hacking Cypher
- Codeforces Round #279 (Div. 2)C. Hacking Cypher
- 有一种服务称为MaaS
- WebService
- 2016超实用HTML5+CSS3移动web开发、手机网站源码(Mobile Web App微商城)、webApp企业微站
- memset用法详解(转)
- 面向对象的设计模式(七),观察者模式
- [CodeForces 490C]Hacking Cypher[math]
- Qt 定时器的使用
- UIScrollView
- 151212ArrayDemo3
- Eclipse搭建android环境及Genymotion模拟器安装问题解决方法
- 151212ArrayTest
- MTK穿戴设备开发代码分析
- 151212ArrayTest2
- 【设计模式】 之 行为型模式概要