当前位置: 首页 > news >正文

北京海淀区网站建设北京百度推广电话

北京海淀区网站建设,北京百度推广电话,网站集约化建设会议议程,宿州企业网站建设写在前面的话:心可以冷,但手不能停 第一题:C. Flexible String 题目大意:给一个aaa字符串和bbb字符串和数字kkk,首先设置一个计数器cntcntcnt,其中可以对aaa字符串做以下操作:替换aaa中的一个字母xxx&#…

写在前面的话:心可以冷,但手不能停
第一题:C. Flexible String
题目大意:给一个aaa字符串和bbb字符串和数字kkk,首先设置一个计数器cntcntcnt,其中可以对aaa字符串做以下操作:替换aaa中的一个字母xxx,将字母xxx加入到集合QQQ,如果这个字母已经在集合QQQ中了,则cntcntcnt不动,否则cnt++cnt++cnt++,记s[l,r]s[l,r]s[l,r]为在[l,r][l,r][l,r]区间中aaabbb的字母全相等。达到的目标为在cnt≤kcnt \leq kcntk的情况下,让s[l,r]s[l,r]s[l,r]的数量最大。
解题思路: 这个题可以这样想,对于任意一个a[i]≠b[i]a[i] \neq b[i]a[i]=b[i],可以将这个位置记作一个断点,被断点隔开的若干个区间可以用这样的形式来表达s[l,r]s[l,r]s[l,r]的数量:len∗(len+1)/2len*(len+1)/2len(len+1)/2,其中len为区间内的字母数量。我们注意到如果将某个满足a[i]≠b[i]a[i] \neq b[i]a[i]=b[i]的字母加入到集合QQQ中,则区间可能被连上,注意可能断点是由两个字母组成的。这样的话,考虑k最大可能为101010,则可以用数位dpdpdp或者dfsdfsdfs等,来枚举所有可能性。枚举出一种可能性,之后只要用O(n)O(n)O(n)判断即可,大概是10810^8108这样的级别,那么这里的枚举状态可以用这种形式表达:

for(int i=0;i<1024;i++)

注意,由于我把集合中的字母用mapmapmap映射,所以所有字母不能映射到000,否则wronganswerontest3wrong\space answer \space on\space test3wrong answer on test3
代码

#include<iostream>
#include<cstdio>
#include<vector>
#include<stack>
#include<map>
using namespace std;
typedef long long ll;
const int length = 1e5 + 5;
char a[length];
char b[length];
ll max(ll a, ll b)
{if (a > b)return a;else return b;
}
ll solve(int i, map<char, int> &mp,int n,int k)
{vector<int> flag(20, 0);int q = 0;for (int j = 1; j <= 10; j++){if (i&(1 << j)){flag[j] = 1;q++;}}if(q>k)return 0;int s = 0;ll res = 0;while (s < n){int tmp = s;while (a[s] == b[s]||flag[mp[a[s]]]==1){s++;if (s >= n)break;}int len = s - tmp;res = res + (ll)(len + 1)*len / 2;s++;}return res;}
int main(void)
{int t;scanf_s("%d", &t);for (int i = 0; i < t; i++){int n;int k;scanf_s("%d%d", &n, &k);getchar();//收\nscanf_s("%s", a,sizeof(a));getchar();//收\nscanf_s("%s", b,sizeof(b));getchar();map<char,int> mp;int cnt = 0;for (int i = 0; i < n; i++){if (a[i] != b[i]){if (mp[a[i]] == 0){mp[a[i]] = ++cnt;}}}if (cnt <= k){ll tmp = (ll)n*(n + 1) / 2;printf("%lld\n", tmp);continue;}vector<ll> dp(1500, 0);ll ans = -1;for (int i = 0; i < 1024; i++){ll a=solve(i*2, mp,n,k);ans = max(ans, a);}printf("%lld\n", ans);}
}

第2题:D. Flexible String Revisit
这个题比较有意思
题目大意: 给一个由0和1组成的两个字符串,对字符串a可以做以下操作:可以任选一个数字对其进行反转,问达到两个字符串第一次相等所需要的操作次数期望。
解题思路
参考文章
代码:

#include<iostream>
#include<cstdio>
#include<vector>
using namespace std;
typedef long long ll;
int mod = 998244353;
const int length = 1e6 + 5;
int f[length][2];
int dp[length];
char a[length];
char b[length];
int ksm(int k)
{int tmp = mod-2;int base = k;int ans = 1;while (tmp){if (tmp % 2 == 1){ans = (ll)ans*base%mod;}base = (ll)base*base%mod;tmp = tmp >> 1;}return ans;
}
int solve(int n, int k)
{f[n][0] = 1;f[n][1] = 1;for (int i = n-1; i >= 0; i--){int now = ((ll)1 - (ll)(n - i)*f[i + 1][1]%mod *ksm(n) % mod + mod) % mod;f[i][0] = ((ll)1 + (ll)(f[i+1][0])*(n-i)%mod*ksm(n) % mod) % mod*ksm(now)%mod;f[i][1] = (ll)i*ksm(n) % mod*ksm(now) % mod;}dp[0] = f[0][0];for (int i = 1; i <= k; i++){dp[i] = (ll)((ll)dp[i - 1] * f[i][1] % mod + f[i][0]) % mod;}return dp[k];
}
int main(void)
{int t;scanf_s("%d", &t);for (int i = 0; i < t; i++){int n;scanf_s("%d", &n);int k = 0;getchar();scanf_s("%s", a,sizeof(a));//a.push_back(t);getchar();scanf_s("%s", b, sizeof(b));getchar();for (int i = 0; i < n; i++){if (a[i] != b[i])k++;}int a1=solve(n, k);printf("%d\n", a1);}
}
http://www.hengruixuexiao.com/news/17078.html

相关文章:

  • 河北省建筑信息平台seo学习论坛
  • wordpress类似股票行情知乎关键词排名优化
  • 哔哩哔哩网页版怎么缓存视频windows优化大师官网
  • 美图秀秀可以做网站吗网站关键词推广价格
  • 最新新闻热点事件300字武汉seo关键词排名
  • 漳州网站建设到博大赞seo关键词平台
  • 做简单的网站首页网站怎么建立
  • 网站请人做的 域名自己注册的 知道网站后台 怎么挂自己的服务器seo赚钱方法大揭秘
  • 时时彩网站建设墨猴seo排名公司
  • 站内免费推广百度一下全知道
  • 江西省建设工程安全质量监督管理局网站搜外友链平台
  • 设计网站首页12345网址大全下载到桌面
  • 个人想做企业网站备案百度首页清爽版
  • 南宁品牌网站建设医院线上预约
  • 什么是软件外包产业优化seo是什么意思
  • 怎么做网站拍卖的那种免费下载app并安装
  • 2014网站备案2345王牌浏览器
  • 零售网站模板网站优化怎么做
  • 东莞专业的网站设计价格关键词网络推广企业
  • 东莞手机网站价格表搜索引擎广告案例
  • 店面门头设计网站搜索引擎优化的简称
  • 网站建设南阳百度首页百度
  • 西安有一个电影他要拉投资做网站安徽网站推广
  • 网站的描述 都应该写 什么 优化搜了网推广效果怎么样
  • 西宁高端网站建设公司重庆百度地图
  • 什么是伪静态网站成都网络营销公司
  • wap端和app有什么区别广州seo推广
  • 搜索引擎的网站推广方式seo优化多少钱
  • 网站后台管理系统有哪些企业网站官网
  • python官网下载安装搜索引擎排名优化