本文共 1238 字,大约阅读时间需要 4 分钟。
找规律 模拟 n叉树#include字符串 + 思维 题意是在所给串中找到 xtCpc,可以不连续,但是每个字母只能用一次。#include #include #include using namespace std;const int maxn=2e5+10;typedef long long ll;ll d[maxn],a[maxn];int main(){ int k,m,n,N; ll p; while(~scanf("%d%d%d%lld",&k,&m,&n,&p)){ for(int i=1;i<=k;i++) scanf("%lld",&a[i]), d[i]=0; sort(a + 1, a + 1 + k); ll ans = 0; if(n == 1) N = m; else N = (pow(n, m) - 1) / (n - 1);// 节点总数 for(int i = 1; i < N; i++) // 根节点不需要 { d[i]=(d[i%n == 0 ? i/n-1 : i/n] % p + a[i] % p) % p; // d[i]=(d[(i-1)/n]%p+a[i]%p)%p; ans = (ans + d[i]) % p; } printf("%lld\n", ans); } return 0;}
#include#include #include #include #include using namespace std;typedef unsigned long long ull;const int N = 2e5 + 9;string s;int sum;int n;int a[10];int main(){ while(cin >> n >> s) { memset(a,0,sizeof(a)); for(int i = 0; i < n; ++i) { if(s[i] == 'x') ++a[1]; else if(s[i] == 't' && a[1]) ++a[2], --a[1]; else if(s[i] == 'C' && a[2]) ++a[3], --a[2]; else if(s[i] == 'p' && a[3]) ++a[4], --a[3]; else if(s[i] == 'c' && a[4]) ++a[5], -- a[4]; } cout << a[5] << endl; } return 0;}
转载地址:http://hwfm.baihongyu.com/