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

中山精品网站建设新闻成都网站seo费用

中山精品网站建设新闻,成都网站seo费用,wordpress 第三方登录,深圳市龙华区有哪些街道传送门 A. Is It a Cat? 题意 给你一个只有英文字母的字符串,问你这个字符串是否由连续的’m’, ‘e’, ‘o’,‘w’,(顺序不能改变)构成,并且不区分大小写。 如: “meow”, “mmmEeOWww”, “MeOooOw” 是符合要求…

传送门

A. Is It a Cat?

题意

给你一个只有英文字母的字符串,问你这个字符串是否由连续的’m’, ‘e’, ‘o’,‘w’,(顺序不能改变)构成,并且不区分大小写。
如: “meow”, “mmmEeOWww”, “MeOooOw” 是符合要求的, 但是 “Mweo”, “MeO”, “moew”, “MmEW”, "meowmeow"是不符合的

思路

对于不同的字符串直接加入到新字符串中,然后和“MEOW”对比是否一致即可,记得大小写一致。

代码

void slove( )
{int t;cin>>n;string s;//meowcin>>s;bool st1=0,st2=0,st3=0,st4=0,st5=0;for(int i =0;i<n;i++){if(s[i]>='a')s[i]-=('a'-'A');}string a;for(int i=0;i<n;i++){if(s[i]!=s[i+1])a+=s[i];}	if(a=="MEOW")cout<<"YES\n";else cout<<"NO\n";

B. Count the Number of Pairs

题意

给你一个只有英文字母的字符串s,如果两个满足字符满足大小写关系,那么就说明他们是配对的。每对成功配对后的字符不可重复配对。给你一个k,你可以对任意字符进行大小写交换操作(最多k次),问你这个字符串最多有多少个配对。

思路

用map存储每一个字符出现的次数,然后先加上大小写共有的字符数量,然后再根据k的值进行操作即可。

代码

void slove( )
{int k;cin>>n>>k;string a;cin>>a;map<int,int>q;for(int i =0;i<n;i++)q[a[i]]++;int res=0;for(int i ='a';i<='z';i++){int l=i-('a'-'A');if(q[i]<q[l])swap(q[i],q[l]);res+=q[l];if(k){res+=min((q[i]-q[l])/2,k);k-=min((q[i]-q[l])/2,k);}}	cout<<res;cout<<endl;
}

C2/c1. Powering the Hero (hard version)

题意

按顺序给你n张卡牌,这些卡牌分为两类:力量牌和角色牌。对于力量牌,你可以把它放在你的力量牌顶:对于角色牌(初始力量为0),你可以消耗最上方的力量牌排融入其中。问你他的所有角色的力量和的最大值是多少?

思路

对于每一张角色牌时,他能获得的最大力量值就是他前面的最大的一张力量排,那么可以直接用优先队列去对力量值进行排序然后取值即可。

 void slove( )
{cin>>n;for(int i =1;i<=n;i++)cin>>stt[i];ll res=0,k=0;priority_queue <int,vector<int>,less<int> >q;for(int i =1;i<=n;i++){if(stt[i]!=0)q.push(stt[i]);else if(q.size()) {res+=q.top();q.pop();}}cout<<rescout<<endl;
}

D. Remove Two Letters

题意

给你一个长度为n的小写字符串,问你任意去除两个相邻的字符串之后,不同的字符串的种类有多少

思路

一眼我是STL大神, 直接map存字符串结果荣获mle5
可以用字符串哈希,但是这道题明显有更简单的方法。首先
如果考虑最优情况,最多的不同的字符串种类肯定是n-1种,那么在此前提下我们去找相同的情况:

因为由样例“ababa”可以发现
如果s[i]==s[i+2],那么两次删除的字符串是相同的,那么直接遍历一遍如果存在就ans–,最后直接输出即可。

代码

void slove( )
{int t;cin>>n;cin>>a;int sum=n-1;for(int i =0;i<n;i++){if(a[i]==a[i+2]&&i+2<n)sum--;}cout<<sum;cout<<endl;
}

E2/E1 Unforgivable Curse (hard version)

题意

给你两个长度为n的只有英文的字符串a,b,然后给你一个k,你可以使si和s(i+k)或者si和s(i+k+1)交换,问你能否通过任意次交换,使得a,b字符串相等。

思路

假设是长度为(k+1)的字符串,那么就只能对于s1和s(1+k)进行交换,那么此时看换之前和换之后如果满足条件,否则无论怎么都满足不了

那么如果是小于(k+1)长度的字符串呢:那么这种字符串就是完全不能交换,即如果开始能满足就是YES,不能为NO。

如果是大于(k+1)长度的,那么从k+1开始看起,当n=k+2时,能任意交换的数字有开头两个和结尾两个,长度每次加1,能任意交换的数字就+2(末尾和不能交换的数字的最左边)(
例:abcdef 和k为4,那么能够任意交换的字符为abef,如果n为abcdefg,那么能够任意交换的字符为abcefg),
那么可以取这部分范围内不可交换的字串判断一下如果相等也是可以交换的;直到n为2*k的时候,所有的字符都可以任意交换。

代码

void slove()
{int k;cin>>n>>k;string a, b;cin >> a >> b;map<int, int> p, q;for (int i = 0; i < n; i++)q[a[i]]++, p[b[i]]++;for (int i = 0; i < n; i++){if (q[a[i]] != p[a[i]]){cout << "NO\n";return;}}if (a == b||k==1){cout << "YES\n";return;}if(n<k+1)cout<<"NO\n";else if(n==k+1){swap(a[0],a[n-1]);if(a==b)cout<<"YES\n";else cout<<"NO\n";}else if(n>=2*k) cout<<"YES\n";else{a=a.substr(n-k,2*k-n);b=b.substr(n-k,2*k-n);if(a==b)cout<<"YES\n";else cout<<"NO\n";}
}

总结:感觉这一场打的还行,d题也没有特别的无脑wa(但是下次还可以少wa点),e的思路差不多都有了,但是写出d后没那么多想法了就有点水群,以后要记得全力以赴!!!

http://www.mmbaike.com/news/66393.html

相关文章:

  • 电影网站做cpa自己做网站流程
  • 怎么做简单网站首页windows优化大师要钱
  • wordpress trackback宁波如何做seo排名优化
  • 上海的外贸网站建设公司智能网站排名优化
  • 字体网站软文营销什么意思
  • wordpress link relseo排名优化公司价格
  • 个人网站制作成品关键词怎么找出来
  • 南通高端网站建设网络推广收费价目表
  • 合作网站开发公司seo流量是什么
  • 搭建网站公司排行榜专业网络推广
  • 福千欣隆网站建设公司 概况免费查权重工具
  • 巩义网站建设案例课堂地推是什么
  • 建站免费加盟色盲测试图数字
  • 住房和城市建设部网站网络推广运营主要做什么
  • 建设公司网站方案bt磁力搜索引擎在线
  • 宁波高端网站建设推广快速申请免费个人网站
  • 南京哪家做电商网站经典广告
  • 我想做一个网站怎么做的网络营销推广方案3篇
  • 建设一个网站需要多久多少钱惠州seo优化
  • 做网站需要哪方面的编程淘宝怎么提高关键词搜索排名
  • 公司做网站的流程网站建设流程是什么
  • 怎么做视频聊天网站杭州网站推广优化
  • 自学网官方网站入口做一个公司网站大概要多少钱
  • 做服装设计看哪些网站企业宣传视频
  • 网站技术报务费如何做会计分录百度搜索竞价推广
  • 如何做网站的搜索优化指的是什么
  • 阿里云服务器 个人网站百度热搜关键词排名
  • 网站如何提交给百度网站宣传和推广的方法有哪些
  • 区县12380网站建设情况杭州百度首页排名
  • 免费php网站网站整合营销推广