BNUOJ 52516 Just A String】的更多相关文章

$KMP$. 枚举每一个后缀,去原串中进行匹配,每次匹配到原串到$i$位置的后缀与这次枚举的后缀的前缀,更新答案. #include<bits/stdc++.h> using namespace std; int T; ]; int len1,len2; ]; long long ans; void getNext(int x) { int j, k; j = x; k = x-; nx[x] = x-; while(j < len1) || a[j] == a[k]) nx[++j]…
题目链接:http://acm.bnu.edu.cn/bnuoj/problem_show.php?pid=34985 We define a kind of strings as elegant string: among all the substrings of an elegant string, none of them is a permutation of "0, 1,…, k". Let function(n, k) be the number of elegant s…
题目链接:http://acm.bnu.edu.cn/bnuoj/problem_show.php?pid=34985 题目大意:问n长度的串用0~k的数字去填,有多少个串保证任意子串中不包含0~k的某一个全排列 邀请赛上A的较多的一道题,比赛的时候死活想不出,回来之后突然就想通了,简直..... = =! 解题思路: 对于所有串我们都只考虑末尾最多有多少位能构成全排列的一部分(用l来表示),即最多有多少位不重复的数字出现,将问题转化为求末尾最多有k位能构成全排列的串的总数量 假设k为5,有一个…
Justice String Time Limit: 2000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java class name: Main   Given two strings A and B, your task is to find a substring of A called justice string, which has the same length as B, and only has a…
传送门:BNUOJ 52325 Increasing or Decreasing题意:求[l,r]非递增和非递减序列的个数思路:数位dp,dp[pos][pre][status] pos:处理到第几位 pre:前一位是什么 status:是否有前导零 递增递减差不多思路,不过他们计算的过程中像5555,444 这样的重复串会多算,所以要剪掉.个数是(pos-1)*9+digit[最高位],比如一位重复子串是:1,2,3,4...9,9个,二位重复子串:11,22,33,44,...,99,9个:…
一道简单的规律题,画出二维表将数字分别相加可以发现很明显的对称性 题目链接:http://www.bnuoj.com/v3/problem_show.php?pid=24251 #include<stdio.h> #include<string.h> #include<algorithm> #include<iostream> #include<math.h> using namespace std; int main() { int sum,n…
http://www.bnuoj.com/bnuoj/problem_show.php?pid=25659 #include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> #include <stack> using namespace std; int main() { ; while(~scanf(&…
http://www.bnuoj.com/bnuoj/problem_show.php?pid=25662 #include <iostream> #include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> #include <stack> #include <queue> #define N 150 using namespa…
http://www.bnuoj.com/bnuoj/problem_show.php?pid=4209 题意:如题 题解:公式直接计算,或者角平分线求交点 [code1]: #include <iostream> #include <math.h> #include <string.h> #include <stdlib.h> #include<stdio.h> using namespace std; //定义点 struct point {…
http://www.bnuoj.com/bnuoj/problem_show.php?pid=33656 [题解]:暴力搜索题 [code]: #include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #include <queue> using namespace std; ][]; ][]; int n,m; int B,F; ,-,,-,…