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

做网站的接私活犯法吗单位邮箱一般用什么邮箱

做网站的接私活犯法吗,单位邮箱一般用什么邮箱,wordpress设置会员查看更多,哈尔滨住建局网站首页A - Yet Another AB Problem 给你两个字符串S和T,你可以对S执行操作,选择两个字符,将前面的改为A,后面的改为B,最少操作几次可以把S改成T。如果改不成就输出-1。 从左往右一个一个改过去,分类讨论&#x…

A - Yet Another AB Problem

给你两个字符串S和T,你可以对S执行操作,选择两个字符,将前面的改为A,后面的改为B,最少操作几次可以把S改成T。如果改不成就输出-1。

从左往右一个一个改过去,分类讨论,如果是要把A改成B。

S:A->B

T:B

那么T中该位置前面一定要有一个A,否则无法修改。

如果要把B改成A。

S:B->A

T:A

那么T中该位置后面一定要有一个B,否则无法修改。

其中可以本次修改可以更优,即S中后面有一个A,对应T后面的B(一次修改,完成两次对应)

#include <bits/stdc++.h>
//#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define fr first
#define se second
#define endl '\n'
using namespace std;
const int N=2e5+5;int n,ans,a;
string s,t;queue<int>q;
int b[N];void solve(){cin>>n>>s>>t;per(i,0,n-1){if(t[i]=='B' and s[i]=='A')q.push(i);}rep(i,n-1,0){if(t[i]=='B')b[i]++;if(i>=1)b[i-1]=b[i];}per(i,0,n-1){if(t[i]=='A')a++;if(s[i]!=t[i]){if(s[i]=='A'){//需要改成B,前面至少有一个Aif(!a){cout<<-1<<endl;return ;}ans++;}else{//需要改成A,后面至少有一个Bif(!b[i+1]){cout<<-1<<endl;return;}ans++;while(!q.empty() and q.front()<i)q.pop();if(!q.empty()){s[q.front()]='B';q.pop();}}}}cout<<ans<<endl;
}signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t=1;while(t--)solve();return 0;
}

补题:B - Arithmetic Progression Subsequence

给你1e5个数,每个数是1~10。对于l和r区间,如果区间中有三个数(不管顺序)a[j],a[k],a[l],满足1 2 3或3 2 1(差为1) 或者1 5 9,9 5 1(差为4)这种差相等的,说明l和r是一个好区间,号区间有几个。

思路1:考虑差值最大只有可能是4,对于一个数a[i],只需要枚举所有差值(sub:1~4),a[i],a[i]+sub,a[i]+2*sub(注意也可以是减法),如果在a[i]之后存在这样的值,那么第三个数的下标及其以后都是好区间。所以只需要想一个算法维护每个数后面的1~10第一次出现的位置。

思路2:找到一个好区间之后就可以无限左右扩展,还需要去判断内部是否有好空间,如果内部有一个好空间,那么外部也都是好空间,所以不应该是从每一个数开始枚举,应该枚举好空间序列长度,从3开始往上扩展。

正确思路:正难则反,只会出现1~10的数,尝试构建无解的情况,从差为0开始往上,如果差重复了就必然有解,如1 1 2 4 8,几乎就没别的数可以填了,就会开始重复了。

AC代码

#include <bits/stdc++.h>
#define int long long
#define per(i,j,k) for(int (i)=(j);(i)<=(k);++(i))
#define rep(i,j,k) for(int (i)=(j);(i)>=(k);--(i))
#define fr first
#define se second
#define endl '\n'
using namespace std;
const int N=1e5+5;int n,a[N],ans;bool check(int l,int r){//约1~100次查询per(i,l,r){per(j,i+1,r){per(k,j+1,r){if(a[j]-a[i]==a[k]-a[j])return true;}}}return false;
}void solve(){cin>>n;per(i,1,n)cin>>a[i];per(i,1,n){per(j,i+1,n){//i和j差到10以内就必然有解,复杂度是带系数的O(n),check比较烂总体约1e9if(check(i,j)){ans+=n-j+1;break;}}}cout<<ans<<endl;
}signed main(){ios::sync_with_stdio(false),cin.tie(nullptr);int t=1;while(t--)solve();return 0;
}

顺带一提不开long long见祖宗。

http://www.yayakq.cn/news/956210/

相关文章:

  • 如何给网站做2维码台州wordpress
  • 长沙培训网站建设零基础学做衣服的网站
  • 一个网站一年的费用多少设计wordpress主题下载
  • 网站名百度搜不到济宁网站开发招聘
  • 商业地产网站建设图书馆主题 wordpress
  • 网站建设维护去哪里学湖南长沙理工大学
  • 能不能用自己的主机做网站北京网站排名优化软件
  • 泡棉制品东莞网站建设学室内设计学费大概要多少钱?
  • 上海网站建设关键词排名创业网站建设
  • 浙江商城网站建设秦皇岛黄金海岸浴场
  • 软件开发还是网站开发好百度如何网站
  • 渝北网站建设公司虚拟服务器建网站
  • 网站的文章标题太短怎么弄备份wordpress数据库
  • 手机模板网站制作域名网站备案
  • 如何制作一个网站包含多个网页软件开发需要学什么专业好
  • flash网站建设公司中国设计网站排名
  • 做网站需要会的软件对战平台网站怎么建设
  • 化妆品网站设计论文玉溪网站建设设计
  • 族谱网站建设电商培训机构有哪些?哪家比较好
  • 行业网站作用c2c平台二手车
  • 如何做好网站关键词布局龙之向导的发展前景
  • 个人开网站上海网站维护
  • 关于网站开发的自我评价装修平台加盟
  • 公司内部网站怎么建设wordpress如何把网站语言改成英文
  • 企业建站系统免费本地服务器网站建设
  • 天津做网站的公网站招标建设
  • 专业网站设计力荐亿企邦如何制作一个平台软件
  • 做签名的网站天猫店铺申请条件
  • 成都网站优化页面网站建设哪家最专业
  • 椒江建设工程机械厂网站莱芜网站建设价格