您当前的位置: 首页 > 

先求一个导

暂无认证

  • 2浏览

    0关注

    291博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

牛客手速月赛-41 F

先求一个导 发布时间:2021-12-06 19:20:24 ,浏览量:2

离小白月赛ak最近的一次,压哨交了一发F得了97分,感觉写的很冗余,就回去改了。后来才发现比赛改版以后题目数量变少了,时间也变短了。改完回来比赛都结束了,不过还是WA了。输出没想清楚。 题目 题意: 给定一个长度30w的数,可以将其数位上的数任意调换顺序,问能否经过调换变成375的倍数,输出任意解,无解输出-1. 思路: 首先判断是不是3的倍数,然后再判断125的倍数,因为125的倍数后三个数结尾是限定的那几个组合。最后输出。难点在于: 输出不能有前导零。 我刚开始想的把125交换到结尾,后来发现有可能125就在结尾,原来的指针指的5可能会被换走。 然后转变思路,当出现125的时候跳过,其他的直接输出,把125最后输出。但是这样会导致有前导零,最后没调出来。 参考别人的做法是,用桶记录每个数出现的次数,125先每个数–。判断一下除了0以外还有没有其他数,有的话一定可以规避前导零,不能规避就看其他的组合是否满足题意。感觉很妙啊哈哈 时间复杂度: O(n) 代码:

// Problem: 小红的375
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/11218/F
// Memory Limit: 524288 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define OldTomato ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr)
#define fir(i,a,b) for(int i=a;i            
关注
打赏
1662037414
查看更多评论
0.0386s