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

咸阳网站制作公司网络营销论文

咸阳网站制作公司,网络营销论文,crm客户管理系统官网,有哪些免费建站的网站A. Was there an Array? 翻译: 对于整数数组 ​,我们将其相等特征定义为数组 ,其中,如果数组 a 的第 i 个元素等于其两个相邻元素,则 ;如果数组 a 的第 i 个元素不等于其至少一个相邻元素,则 …

 A. Was there an Array?

翻译:

        对于整数数组 a_{1},a_{2},...,a_n​,我们将其相等特征定义为数组 b_{2},b_{3},...,b_{n-1},其中,如果数组 a 的第 i 个元素等于其两个相邻元素,则 b_{i}=1;如果数组 a 的第 i 个元素不等于其至少一个相邻元素,则 b_i=0

        例如,对于数组 [1,2,2,2,3,3,4,4,4],相等特征为 [0,1,0,0,0,0,1,1]。

        给你数组 b_{2},b_{3},...,b_{n-1}。你的任务是确定是否存在这样一个数组 a具有相同特征。

思路:

        如果b存在101则错误。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;void solve(){int n;  cin>>n;vector<int>b(n-2);for (int i=0;i<n-2;i++) cin>>b[i];if (n<=4){cout<<"YES"<<endl;}else{for (int i=0;i<n-4;i++){if (b[i]==1 && b[i+1]==0 && b[i+2]==1){cout<<"NO"<<endl;return;}}cout<<"YES"<<endl;}
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();ll t;cin>>t;while (t--) solve();
}


B. Set of Strangers

 翻译:

        给你一张 n 行 m 列的表格。最初,第 i 行第 j 列的单元格的颜色为 a_{i,j}

        如果两个单元格不共用一条边,那么这两个单元格就是陌生人。陌生人可以用角接触。

        如果单元格集合中的所有单元格对都是陌生人,我们就说这个单元格集合是陌生人集合。根据定义,不超过一个单元格的集合就是陌生人集合。

        在一个步骤中,你可以选择任意一个陌生人集合,使其中的所有单元格都具有相同的颜色,然后给所有单元格涂上其他颜色。你可以选择得到的颜色。

        要使整个表格的颜色相同,最少需要多少步?

思路:

        对于所有相同颜色的块,如果存在相邻的块,则要2次操作使所有块变为同一颜色,否则只用1次操作。

        得到所有颜色的变换操作数,再减去所有颜色转换操作数中的最大值。

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
vector<vector<int>> direct = {{0,1},{0,-1},{1,0},{-1,0}};
void solve(){int n,m;  cin>>n>>m;vector<int> cnts(n*m+1,0);vector<vector<int>> graph(n+2,vector<int>(m+2,0));for (int i=1;i<=n;i++){for (int j=1;j<=m;j++){cin>>graph[i][j];}}int mx = 0,summ = 0;for (int i=1;i<=n;i++){for (int j=1;j<=m;j++){int f = 0;for (auto d:direct){if (graph[i][j]==graph[i+d[0]][j+d[1]]){f = 1;break;}}cnts[graph[i][j]] = max(1+f,cnts[graph[i][j]]);}}for (int i=1;i<=n*m;i++){summ+=cnts[i];mx = max(mx,cnts[i]);}cout<<summ-mx<<endl;
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();ll t;cin>>t;while (t--) solve();
}


C. Beautiful Sequence

 翻译:

        如果下列条件成立,我们就称一个整数序列为优美序列:

  • 它的长度至少为 3;
  • 除第一个元素外,每个元素的左边都有一个比它小的元素;
  • 除最后一个元素外,每个元素的右边都有一个比它大的元素;

        例如,[1,4,2,4,7] 和 [1,2,4,8] 很美,但 [1,2]、[2,2,4] 和 [1,3,5,3] 却不美。

        回想一下,子序列是指在不改变其余元素顺序的情况下,通过删除某些元素可以从另一个序列得到的序列。

        给你一个大小为 n 的整数数组 a,其中每个元素都是从 1 到 3。你的任务是计算数组 a 的优美子序列的个数。

思路:

        按照条件优美序列为122...23。求满足条件的序列数量。使用dp状态机。

        dfs( i , k ) 为[ : i ]中以k为结尾的序列数量。

递推公式:

       dfs( i , k) = dfs( i-1 , k);

        当k==3时,如果a[i]==3,则当前3与前面的2结尾数字匹配 dfs(i , k)+=dfs(i-1 , 2)

        当k==2时,如果a[i]==2,则当前2与前面的1或2结尾数字匹配 dfs(i , k) += dfs(i-1 , 1)

        当k==1时,如果a[i]==1,1开头的数量+1 dfs( i , k )++;

边界条件:

        if (i<0) return 0;

实现:

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const ll mod = 998244353;
void solve(){ll n;  cin>>n;vector<ll> a(n);for (ll i=0;i<n;i++) cin>>a[i];vector<vector<ll>> memo(n,vector<ll>(4,-1));// dp状态机:[:i] 中以 k 结尾的 子串数量auto dfs = [&](auto&& dfs,ll i,ll k)->ll{if (i<0) return 0;ll &res = memo[i][k];if (res!=-1) return res;res = dfs(dfs,i-1,k);if (k==3 && a[i]==3){res = (res+dfs(dfs,i-1,2))%mod;}else if (k==2 && a[i]==2){res = (res+dfs(dfs,i-1,2)+dfs(dfs,i-1,1))%mod;}else if (k==1 && a[i]==1){res += 1;}return res;};cout<<dfs(dfs,n-1,3)<<endl;
}int main(){// 关闭输入输出流同步ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);// 不使用科学计数法// cout<<fixed;// 中间填保留几位小数,不填默认// cout.precision();ll t;cin>>t;while (t--) solve();
}

D. Palindrome Shuffle

  翻译:

       给你一个由小写拉丁字母组成的字符串 s。

        您可以对字符串 s 执行以下操作:选择 s 的一个连续子串(可能为空),然后将其洗码(按您的意愿重新排列子串中的字符)。

        回顾一下,回文字符串是指从第一个字符到最后一个字符以及从最后一个字符到第一个字符的读法相同的字符串。例如,字符串 a、bab、acca、bcabcbacb 是回文字符串,但字符串 ab、abbbaa、ccbb 不是回文字符串。

        您的任务是确定子串的最小可能长度,必须在该子串上执行上述操作才能将给定的字符串 s 转换成一个回文字符串。

思路:

        向左右指针去除左右边界相同的字符,剩余的部分 s 为由左端点开始重排或从右端点开始重排。对 s 进行中心扩展得到其最大的回文,如果回文的左剩余与右剩余部分进行重排后相同则,则对这些剩余部分进行重排即可。否则要重拍的部分必定在一半s以上,记录 s 的每种字符的位置,比较每种字符要重排的最大位置。

实现:

#include <bits/stdc++.h>
using namespace std;int main () {ios_base::sync_with_stdio(0); cin.tie(0);int T;cin >> T;while (T--) {string s;cin >> s;int n = s.size();int l = 0, r = n-1;while (l < r && s[l] == s[r]) {l++;r--;}if (l > r) {cout << "0\n";continue;}s = s.substr(l, r-l+1);n = s.size();l = n/2-1, r = n/2;while (l >= 0 && s[l] == s[r]) {l--;r++;}string L = s.substr(0, l+1);string R = s.substr(r);sort(L.begin(), L.end());sort(R.begin(), R.end());if (L == R) {cout << l+1 << '\n';continue;}int ans = n;for (int _ = 0; _ < 2; _++) {vector<vector<int>> pos(26);int res = 0;for (int i = 0; i < n; i++) {pos[s[i]-'a'].push_back(i);}for (vector<int>& v: pos) {if (v.empty()) continue;res = max(res, v[(int)v.size()/2-1]+1);}ans = min(ans, res);reverse(s.begin(), s.end());}cout << ans << '\n';}
}

  有建议可以评论,我会积极改进qwq。

http://www.dinnco.com/news/80954.html

相关文章:

  • 推荐电商网站建设新闻发布会稿件
  • wordpress单页留言企业网站排名优化价格
  • 网站设计参考什么是优化设计
  • 室内设计公司排行榜西安优化外
  • 做网站要做哪些seo整站优化报价
  • 线上网站开发系统流程网络促销策略
  • 个人备案网站做盈利合法吗百度ai入口
  • 服装外贸网站设计互联网品牌的快速推广
  • 企业手机网站建设市场分析2023年火爆的新闻
  • 网站空间位置网络营销的发展现状如何
  • vps建设网站别人访问不了seo渠道
  • 怎么做电脑网站后台免费ip地址代理
  • wordpress头像管理插件网站关键词seo排名
  • 有做网站需求的客户营业推广方案怎么写
  • table做网站百度用户服务中心人工电话
  • 深圳万齐网站建设app拉新项目
  • 广东网站建设微信网站定制保定seo网站推广
  • 网站建设网站网站建设网站今日军事新闻头条打仗
  • 珠宝网站建设要以商为本长春网站建设公司哪个好
  • 网站编辑器判断百度号码认证平台官网首页
  • jsp servlet 网站实例手机版百度一下
  • 中国500强排行榜临沂做网络优化的公司
  • 球鞋定制软件优化网站的软件下载
  • 自己创业做网站网络营销介绍
  • 谁给个国外的黄色网站小果seo实战培训课程
  • 阜康网站建设官网首页入口百度
  • 增加网站点击量icp备案查询
  • 互联网创业项目零成本南城网站优化公司
  • 深圳网站设计网站建设哪个好链接制作
  • php b2c网站百度搜索app免费下载