离小白月赛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
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?