解题思路:

  1. 只有尾数为25,50,75,00的数才可能是25的倍数。
  2. 对字符串做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相关推荐

  1. 【CodeForces】988E·Divisibility by 25

    题目 题目大意 分析 代码 题目 传送门 题目大意 给你一个整数 n n n(1≤n≤1018" role="presentation">1≤n≤10181≤n≤1 ...

  2. CodeForces 597A Divisibility

    Divisibility time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

  3. 【CodeForces 597A Divisibility】

    Divisibility Find the number of k-divisible numbers on the segment [a, b]. In other words you need t ...

  4. CodeForces 550C Divisibility by Eight(暴力)

    http://http://codeforces.com/problemset/problem/550/C 题意: 给出一串数字,在原先的顺序基础上适当的删除一些数使得最终的结果能被8整除 解题思路: ...

  5. CodeForces 597A Divisibility

    水题. #include<iostream> #include<cstring> #include<cmath> #include<queue> #in ...

  6. Codeforces Round #486 (Div. 3)【完结】

    2022.3.2 题单地址:https://codeforces.com/contest/988 目录 A. Diverse Team[模拟] B. Substrings Sort[暴力枚举] C. ...

  7. CF597 (Div. 2)题解

    A.乱搞gcd B.模拟题 C. 原始串中'w'字符会被替换成 uu 'm'字符会被替换成nn, 给你一个字符串,问你他原串有多少种可能 nnn -> nnn nm mn 3种 nnnn -&g ...

  8. A. IQ test

    题目链接:http://codeforces.com/problemset/problem/25/A 25A. IQ test time limit per test2 seconds memory ...

  9. 25A - IQ test

    题目:https://codeforces.com/problemset/problem/25/A 题解:只需记录第一个奇数偶数的位置,再判断两种数哪一种只出现一次 #include <iost ...

最新文章

  1. 最近遇到的若干技术问题
  2. JSP 页面传值方法总结
  3. html5清除手机页面缓存文件夹,WebView自动缓存-清除缓存
  4. Druid SQL查询数据timeStamp时区问题
  5. 19款探岳刷隐藏教程_Excel 2019快速入门视频教程 Excel技巧 Excel函数公式 Excel下载...
  6. 输入数字自动找规律的软件_WPS2019 填充柄的顺序式填充、复制式填充、规律填充、自定义填充...
  7. 1_Excel实战_自动录入另一个表格对应的数据
  8. A Dicey Problem 骰子难题(Uva 810)
  9. linux系统清空文件内容
  10. 牛腩新闻发布系统—403.14错误
  11. 图论知识及其应用初步调研
  12. goEasy的简单使用
  13. HTML网页设计制作——响应式网页影视动漫资讯bootstrap网页(9页)
  14. 最小二乘法-线性拟合
  15. error An unexpected error occurred “httpsregistry.npmjs.orgd3-geo-proje
  16. 大学学计算机需不需要提前预习,大学怎么预习啊?
  17. 没有项目管理经验,可以参加PMP考试吗?
  18. 9+11个无版权、高清、免费图片素材网站给你!免费无版权可商用图标、图片素材,需要图片的时候可以上去看看
  19. 误用rm -rf *文件修复及修改rm指令为mv
  20. 查询用户上次登录时间问题

热门文章

  1. mysql null的作用_MySQL中对于NULL值的理解和使用教程
  2. 怎么会执行sql 懒加载 没用_太神奇的 SQL 查询经历,group by 慢查询优化!
  3. python3.7游戏_python3.7+django环境搭建
  4. 记录webpack的source map使用详细说明
  5. 用dict读取和写入表格_用Python快速处理表格,让你快人一步两步三四部
  6. MySQL 查询表中某字段值重复的数据
  7. Mac的文件比对工具:Meld、Beyond Compare
  8. django 多对多表的创建,级联删除,手动创建第三张表
  9. nginx反向代理下thinkphp、php获取不到正确的外网ip
  10. Unity手游之路九自动寻路Navmesh之高级主题