Codeforces盲盒!!!

#include <bits/stdc++.h>

又是美好的一天呢——

今天给大家写点啥呢?让我好好想一想……

有了!

Codeforces盲盒来啦!!!!

今天给大家抽个盲盒,我们选哪道题呢?

In Python Shell……

Python 3.8.6rc1 (tags/v3.8.6rc1:08bd63d, Sep 7 2020, 23:10:23) [MSC v.1927 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license()" for more information.
>>> from random import randint
>>> s = str(randint(250, 888)) + "A"
>>> print(s)
612A
>>>

嗯,今天我就做612A吧!

希望我能做出来……

A. The Text Splitting

题意:给你一个字符串s,数字p、q,请你找到一种把s切成p和(或)q的长度的子串的方法。

我的天!1300的难度系数!好吓人!

但是,只要你的眼尖……

天啦噜!brute force!

赶快,暴力代码,快上啊!

代码:

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main() {
 5     int n, p, q;
 6     string s;
 7     cin >> n >> p >> q;
 8     cin >> s;
 9     int pcnt, qcnt;
10     int ok = 0;
11     for (pcnt = 0; pcnt < 100; pcnt++) { // 使用暴力,
12         for (qcnt = 0; qcnt < 100; qcnt++) { // 快使用暴力!
13             if (pcnt * p + qcnt * q == n) {
14                 cout << pcnt + qcnt << endl;
15                 ok = 1; // 这个值可以啊!
16             }
17             if (ok) {
18                 break;
19             }
20         }
21         if (ok) {
22             break;
23         }
24     }
25     if (pcnt == 100 && qcnt == 100) { // 不可能!
26         cout << -1;
27         return 0;
28     }
29     int i, j; // 注意:算q时需要p的!
30     for (i = 0; i < pcnt; i++) { // 先切pcnt个p
31         cout << s.substr(i * p, p) << endl;
32     }
33     for (j = 0; j < qcnt; j++) { // 再切qcnt个q
34         cout << s.substr(i * p + j * q, q) << endl; // 我说用上了吧!
35     }
36     return 0;
37 }
Solution of CF612A

 

posted @ 2021-11-18 18:22  A-Problem-Solver  阅读(71)  评论(0)    收藏  举报