zoukankan      html  css  js  c++  java
  • 【题解】[BalticOI 2014]friends

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=3916 (BZOJ3916)

    • 由题意可知 (N) 得为奇数,(S) 才存在,所以先特判 (N) 为偶数的情况。

    • 由题意可知 (S) 的长度为 (lfloor dfrac {N}{2} floor), 设 (S) 的长度为 (M)

    • 如果存在 (S),则 (S) 一定是 (U) 的前 (M) 个字符或后 (M) 个字符。

    • 用 substr 函数分别截取前 (M) 个字符和后 (M) 个字符,再依次匹配检查是否合法。

    代码:

    #include <bits/stdc++.h>
    using namespace std;
    int n, m, a1, a2;
    string u, s1, s2;
    
    int main()
    {
    	scanf("%d", &n);
    ㅤㅤㅤㅤ if (n % 2 == 0)
    	{
    		printf("NOT POSSIBLE
    ");
    		return 0;
    	}
    	cin >> u;
    	m = n / 2;
    	s1 = u.substr(0, m);
    	int j = 0;
    ㅤㅤㅤㅤ for (int i = m; i < n && j < m; i++)
    		if (u[i] == s1[j]) j++;
    ㅤㅤㅤㅤ if (j == m) a1 = 1;
    	s2 = u.substr(n - m, m);
    	j = 0;
    	for (int i = 0; i < n - m && j < m; i++)
    		if (u[i] == s2[j]) j++;
    ㅤㅤㅤㅤ if (j == m) a2 = 1;
    	if (!a1 && !a2) printf("NOT POSSIBLE
    ");
    	else if (a1 && a2 && s1 != s2) printf("NOT UNIQUE
    ");
    	else if (a1) cout << s1 << endl;
    ㅤㅤㅤㅤ else cout << s2 << endl;
    	return 0;
    }
    
  • 相关阅读:
    gotour源码阅读
    CPU知识
    GCC知识
    go/src/make.bash阅读
    Go的pprof使用
    CGI的一些知识点
    STM32——C语言数据类型
    css 学习资料
    项目管理实践教程
    js 格式验证总结
  • 原文地址:https://www.cnblogs.com/LongDouble/p/13057454.html
Copyright © 2011-2022 走看看