三亚凤凰镇网站建设兼职招聘网,青岛圭谷网站建设公司怎么样,大秦wordpress微信支付,百度搜索资源管理平台第一题#xff08;签到#xff09;#xff1a; 1、题意#xff1a; 2、题解: 我们观察到happynewyear的长度是12个字符#xff0c;我们直接从前往后遍历0到n - 12的位置#xff08;这里索引从0开始#xff09;#xff0c;使用C的substr()函数找到以i开头的长度为12的字…第一题签到 1、题意 2、题解: 我们观察到happynewyear的长度是12个字符我们直接从前往后遍历0到n - 12的位置这里索引从0开始使用C的substr()函数找到以i开头的长度为12的字符串是不是我们要的如果是的话直接输出注意输出时索引是从0开始。 3、代码 #include bits/stdc.h
using namespace std;
const int N 1e5 10;
int n;
int main() {string s; cin n s; for(int i 0; i n - 12; i ) {string tmp s.substr(i, 12); if(tmp happynewyear) {cout i endl; return 0; }}return 0;
}第二题思维构造: 1、题意2、题解 对于任意数字%7的解集是 操作2我们可以构造方案为使得得到了7的倍数当任意要构造0-6时我们发现会多出几个空位出来当余数为x时我们构造7-x, 显然 0 7 - x 7当我们先给7-x分配好了二进制位置可以发现0-6都只占二进制位1个2个会剩下5个或者4个我们只需要多次执行操作二凑出7的二进制的占位的个数的倍数(只需要按构造方案那样的思想造不同的二进制位)就一定能构造出任意情况。 3、代码
#include bits/stdc.h
using namespace std;
using ll long long;
ll n, m;
ll a[N], s[N];
int main() {int T; cin T; while(T -- ) {string s; cin s; cout YES endl; }return 0;
} 第三题前缀和 1、题意2、题解 维护好长度为n的前缀和每次到达 n - m 1的位置我们直接对取Max即可 3、代码
#include bits/stdc.h
using namespace std;
using ll long long;
const int N 2e5 10;
ll n, m;
ll a[N], s[N];
int main() {cin n m; ll ans -1; for(int i 1; i n; i ) {cin a[i];s[i] a[i] s[i - 1]; }for(int i 1; i n - m 1; i )ans max(ans, s[i m - 1] - s[i - 1]); coutansendl; return 0;
}第四题 (贪心 维护) 1、题意2、题解我们先维护好AB的每个位置和BA的每个位置都是第一个字符出现的位置遍历AB位置二分出左边离它最远的BA位置判断一下这个位置是否是和它差3的长度如果是就是合法的再二分出右边离它最远的BA位置判断一下这个位置是否和它差3长度, 如果是就说合法的。 3、代码 #include bits/stdc.h
using namespace std;
const int N 2e5 10;
int n, m;
void solve() {string s;cin s; n s.size();vectorint ab, ba; for(int i 0; i n - 1; i ) {string tmp; tmp s[i]; tmp s[i 1]; if(tmp AB) ab.push_back(i);if(tmp BA) ba.push_back(i);}bool flag 0; for(int i 0; i ab.size(); i ) {int x ab[i], i1 -1, i2 -1; int l 0, r ba.size() - 1; while(l r) {int mid l r 1; if(ba[mid] x - 1) r mid; else l mid 1; }i1 l;l 0, r ba.size() - 1; while(l r) {int mid l r 1 1; if(ba[mid] x 1) l mid; else r mid - 1; }i2 l;if(ba.size() ba[i1] x - 1) {flag 1; break; }if(ba.size() ba[i2] x 1) {flag 1;break; }}if(flag) puts(YES);else puts(NO);
}
int main() {int ts 1;cin ts;while(ts --) solve();return 0;
}