3 条题解

  • 0
    @ 2026-8-12 9:18:31

    入门题。 观察规律,发现检测首行即可。注意条件不要写成 buf[i + 4] == '.',这样需要额外特判最后一个字母(若最后一个是 v,则 buf[i + 4] = '\0'

    #include <bits/stdc++.h>
    
    constexpr int MAXN = 1e3 + 10;
    
    char buf[MAXN];
    
    int main() {
        int N;
        scanf("%d", &N);
        
        scanf("%s", buf);
    
        for(int i = 0, cnt = 0; i < N; ) {
            if(buf[i + 4] != '\\')
                putchar('v'), i += 5;
            else
                putchar('w'), i += 9;
        }
    }
    
    • 0
      @ 2026-8-12 9:16:32

      不知道有没有人注意到:读入只需读入第一行,判断时ii55开始判断,若为.则为v,同时i+5i+5,否则为wi+10i+10

      • 0
        @ 2026-8-6 21:05:29

        洛谷 P11751

        题目大意:

        给定两个字母加密方式,输出解密后的字符串。

        解题思路:

        按照题目模拟即可。注意,只有连续且完整的加密串有效,所以,我们手动把开头与结尾的加密串加上一个点,放便后面的判断。然后,我们只需要遍历一遍字符串,如果 s[i] == '.' && s[i + 1] == '\\' && s[i + 2] == '.' && s[i + 3] == '.' && s[i + 4] == '/' && s[i + 5] == '.' 的话,cout<<'v';如果 s[i] == '.' && s[i + 1] == '\\' && s[i + 2] == '.' && s[i + 3] == '.' && s[i + 4] == '/' && s[i + 5] == '\\' && s[i + 6] == '.' && s[i + 7] == '.' && s[i + 8] == '/' && s[i + 9] == '.' 的话,cout<<'w'

        AC 代码:

        #include<bits/stdc++.h>
        using namespace std;
        int n;
        string s, c;
        int main() {
        	cin >> n;
        	cin >> s >> c;
        	s = "." + s + ".";
        
        	for (int i = 0; i < n; i++) {
        		if (s[i] == '.' && s[i + 1] == '\\' && s[i + 2] == '.' && s[i + 3] == '.' && s[i + 4] == '/' && s[i + 5] == '.') {
        			cout << 'v';
        		} else if (s[i] == '.' && s[i + 1] == '\\' && s[i + 2] == '.' && s[i + 3] == '.' && s[i + 4] == '/' && s[i + 5] == '\\' && s[i + 6] == '.' && s[i + 7] == '.' && s[i + 8] == '/' && s[i + 9] == '.') {
        			cout << 'w';
        		}
        	}
        
        	return 0;
        }
        
        • 1

        信息

        ID
        12564
        时间
        1000ms
        内存
        512MiB
        难度
        2
        标签
        递交数
        35
        已通过
        24
        上传者