Codeforces 988E. Divisibility by 25
解题思路:
- 只有尾数为25,50,75,00的数才可能是25的倍数。
对字符串做4次处理,以25为例。
a. 将字符串中的最后一个5移到最后一位。计算交换次数。(如果没有找到5,则不可能凑出25,考虑50、75、00)
b. 字符串已经改变,将此时最后一个2移到倒数第二位。计算交换次数。 (如果没有找到2,则也不可能凑出25,考虑50、75、00)
c. 将除了最后两位之外的第一个非0的数字移到首位,计算交换次数。(如果找不到除了最后两位之外的非0数字,则不可能凑出25,考虑50、75、00)
注意:
我的WA点:
输入25
输出0
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;int solve(string s, char c1, char c2){
// cout << s << endl;int len = s.length()-1;int ans = 0;int flag = false;for(int i = 0;s[i]; ++i){if(s[i] == c2){flag = true;for(int j = i;j > 0; j--){swap(s[j],s[j-1]);ans++;}break;}}
// cout << ans << endl;if(!flag) return -1;flag = false;for(int i = 1;s[i]; ++i){if(s[i] == c1){flag = true;for(int j = i;j > 1; j--){swap(s[j],s[j-1]);ans++;}break;}}if(!flag) return -1;if(len == 1) return ans;int con = -1;for(int i = len;i > 1; --i){if(s[i] != '0'){con = i;break;}}if(con == -1){return -1;}else{return ans+len-con;}
}int main(){ios::sync_with_stdio(false);string s;while(cin >> s){reverse(s.begin(), s.end());int ans = INT_MAX;int t;t = solve(s, '2', '5');// cout << t << endl;if(t != -1){ans = min(ans, t);}t = solve(s, '5', '0'); // cout << t << endl;if(t != -1){ans = min(ans, t);}t = solve(s, '7', '5'); // cout << t << endl;if(t != -1){ans = min(ans, t);}t = solve(s, '0', '0'); // cout << t << endl;if(t != -1){ans = min(ans, t);}if(ans == INT_MAX) ans = -1;cout << ans << endl;} return 0;
}
Codeforces 988E. Divisibility by 25相关推荐
- 【CodeForces】988E·Divisibility by 25
题目 题目大意 分析 代码 题目 传送门 题目大意 给你一个整数 n n n(1≤n≤1018" role="presentation">1≤n≤10181≤n≤1 ...
- CodeForces 597A Divisibility
Divisibility time limit per test 1 second memory limit per test 256 megabytes input standard input o ...
- 【CodeForces 597A Divisibility】
Divisibility Find the number of k-divisible numbers on the segment [a, b]. In other words you need t ...
- CodeForces 550C Divisibility by Eight(暴力)
http://http://codeforces.com/problemset/problem/550/C 题意: 给出一串数字,在原先的顺序基础上适当的删除一些数使得最终的结果能被8整除 解题思路: ...
- CodeForces 597A Divisibility
水题. #include<iostream> #include<cstring> #include<cmath> #include<queue> #in ...
- Codeforces Round #486 (Div. 3)【完结】
2022.3.2 题单地址:https://codeforces.com/contest/988 目录 A. Diverse Team[模拟] B. Substrings Sort[暴力枚举] C. ...
- CF597 (Div. 2)题解
A.乱搞gcd B.模拟题 C. 原始串中'w'字符会被替换成 uu 'm'字符会被替换成nn, 给你一个字符串,问你他原串有多少种可能 nnn -> nnn nm mn 3种 nnnn -&g ...
- A. IQ test
题目链接:http://codeforces.com/problemset/problem/25/A 25A. IQ test time limit per test2 seconds memory ...
- 25A - IQ test
题目:https://codeforces.com/problemset/problem/25/A 题解:只需记录第一个奇数偶数的位置,再判断两种数哪一种只出现一次 #include <iost ...
最新文章
- 最近遇到的若干技术问题
- JSP 页面传值方法总结
- html5清除手机页面缓存文件夹,WebView自动缓存-清除缓存
- Druid SQL查询数据timeStamp时区问题
- 19款探岳刷隐藏教程_Excel 2019快速入门视频教程 Excel技巧 Excel函数公式 Excel下载...
- 输入数字自动找规律的软件_WPS2019 填充柄的顺序式填充、复制式填充、规律填充、自定义填充...
- 1_Excel实战_自动录入另一个表格对应的数据
- A Dicey Problem 骰子难题(Uva 810)
- linux系统清空文件内容
- 牛腩新闻发布系统—403.14错误
- 图论知识及其应用初步调研
- goEasy的简单使用
- HTML网页设计制作——响应式网页影视动漫资讯bootstrap网页(9页)
- 最小二乘法-线性拟合
- error An unexpected error occurred “httpsregistry.npmjs.orgd3-geo-proje
- 大学学计算机需不需要提前预习,大学怎么预习啊?
- 没有项目管理经验,可以参加PMP考试吗?
- 9+11个无版权、高清、免费图片素材网站给你!免费无版权可商用图标、图片素材,需要图片的时候可以上去看看
- 误用rm -rf *文件修复及修改rm指令为mv
- 查询用户上次登录时间问题
热门文章
- mysql null的作用_MySQL中对于NULL值的理解和使用教程
- 怎么会执行sql 懒加载 没用_太神奇的 SQL 查询经历,group by 慢查询优化!
- python3.7游戏_python3.7+django环境搭建
- 记录webpack的source map使用详细说明
- 用dict读取和写入表格_用Python快速处理表格,让你快人一步两步三四部
- MySQL 查询表中某字段值重复的数据
- Mac的文件比对工具:Meld、Beyond Compare
- django 多对多表的创建,级联删除,手动创建第三张表
- nginx反向代理下thinkphp、php获取不到正确的外网ip
- Unity手游之路九自动寻路Navmesh之高级主题