1 条题解
-
0
自动搬运
来自洛谷,原作者为

追梦之鲸
哼~搬运于
2025-08-24 22:19:59,当前版本为作者最后更新于2020-12-27 09:26:52,作者可能在搬运后再次修改,您可在原文处查看最新版自动搬运只会搬运当前题目点赞数最高的题解,您可前往洛谷题解查看更多
以下是正文
这是本蒟蒻的第篇题解。
管理大大求过QAQ。
思路
其实这道题可以不写模拟
那么有人就要问了,不写模拟在原字符串上直接输出也可以,可是这个位置怎么办呢?没关系,现在我来教你怎么算位置。(为了方便,我们用数字表示)
发现什么了吗,如果没发现,那么下面我会给你更详细的解说。
$1,2,3,4,5,6,7,8,9→1,1+3,1+3+3,2,2+3,2+3+3,3,3+3,3+3+3$
是不是恍然大悟?
Code:
#include<bits/stdc++.h>//无敌头文件,你值得拥有 using namespace std; string n; bool k[101];//防止一些奇怪的错误,本蒟蒻也不知为何 int a=1,b=1,x,ks;//a,b是长方形的长和宽,x是n的位数,ks是指针 int main(){ cin>>n; x=n.size(); //求长和宽 for(int i=1;i*i<=x;i++){ if(x%i==0){ a=i; b=x/i; } } //重点来了! for(int i=1;i<=a;i++){ while(k[ks]){ ks++; } //防止一些bug cout<<n[ks]; k[ks]=1; for(int j=1;j<b;j++){ cout<<n[ks+j*a];//这就是我前面讲了大半天的东东 k[ks+j*a]=1; } } return 0; 禁止抄袭!!! }管理大大求过啊……
- 1
信息
- ID
- 5393
- 时间
- 1000ms
- 内存
- 32MiB
- 难度
- 2
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者