首页 > 其他分享 >D. Reverse Madness

D. Reverse Madness

时间:2023-09-28 11:15:12浏览次数:28  
标签:Madness Reverse int cin long --

根据数据可知,字符串s被分成互不相交的子集,然后在每个子集内根据x的位置经行左右翻转,可知翻转为偶数时恢复原样,所以可以根据差分数组进行求解

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define LL long long
const int N = 2e5 + 10;

int a[N], b[N];

void solve() {
	int n, k;
	cin >> n >> k;
	string s;
	cin >> s;
	for (int i = 1; i <= k; i++) cin >> a[i];
	for (int i = 1; i <= k; i++) cin >> b[i];
	int q;
	int cnt[N] = {};
	cin >> q;
	while (q--) {
		int x;
		cin >> x;
		int p = lower_bound(b + 1, b + 1 + k, x) - b;//寻找x的下标,x<=b[i]
		int a1 = min(x, b[p] + a[p] - x), b1 = max(x, b[p] + a[p] - x);
		cnt[a1] ++; cnt[b1 + 1]--;//差分
	}
	string ans = s;
	int now = 0;
	for (int i = 1; i <= k; i++) {
		for (int j = a[i]; j <= b[i]; j++){
			now += cnt[j];//前缀和
			if (now & 1) {//是奇数就翻转
				ans[j-1] = s[a[i]+b[i] - j-1];
			}
		}
	}
	cout << ans;


	cout << '\n';
}
int main() {
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	int t;
	cin >> t;
	while (t--) {
		solve();
	}
	return 0;
}

标签:Madness,Reverse,int,cin,long,--
From: https://www.cnblogs.com/bu-fan/p/17735227.html

相关文章

  • [论文阅读] Anomaly detection via reverse distillation from one-class embedding
    Anomalydetectionviareversedistillationfromone-classembeddingIntroduction在知识蒸馏(KD)中,知识是在教师-学生(T-S)对中传递的。在无监督异常检测的背景下,由于学生在训练过程中只接触到正常样本,所以当查询是异常的时候,学生很可能会产生与教师不一致的表示。然而,在实际情......
  • BUUCTF Reverse/[NPUCTF2020]你好sao啊
    里面就一个加密函数,分析后发现这是一段变表的base解密,将四个字符替换成三个字符点击查看代码void*__fastcallRxEncode(constchar*a1,inta2){intv3;//[rsp+18h][rbp-38h]intv4;//[rsp+1Ch][rbp-34h]intv5;//[rsp+20h][rbp-30h]intv6;//[rsp+2......
  • RPF(reverse path forwarding)
    RPF(反向路径转发)路由器收到组播数据报文后,只有确定这个数据报文是从自身连接到组播源的接口上收到的,才进行转发,否则丢弃RPF检查在大伯路由表中查找到组播报文源地址的路由如果该路由的出接口就是组播报文的入接口,RPF检查成功,否则RPF检查失败,报文丢弃注意:该路由的出接口就是组播报文......
  • Reverse入门指北
     moectf{F1rst_St3p_1s_D0ne}Reverse入门指北两个附件,其中有一个exe,但是直接打开失败了  拖入die,无壳32位拖入ida,F5\shift+F12\ctrl+X都试了试,在shift+F12查看字符串中发现flag,简单解决 复制提交moectf{F1rst_St3p_1s_D0ne} ......
  • ES中reverse_nested+sum+bucket_sort
    记一次嵌套sum聚合的排序DSL场景:根据nested_gs2Entity.kw_entity聚合,filter对聚合结果过滤类型是产品,实体是需要关心的产品列表,在结果中sum互动量long_interaction,和花费long_paidPrice然后在结果中根据sum的结果排序{"aggregations":{"agg_entity_a":{"aggre......
  • CF1864B Swap and Reverse 题解
    注意到交换操作,无法改变下标的奇偶性,因此只能通过考虑翻转操作改变。注意到如果\(i\)是奇数,那么要令\(i+k-1\)为偶数的话\(k\)必须为偶数,若\(i\)是偶数,要令\(i+k-1\)是奇数的话,\(k\)也应为偶数,而\(k\)为奇数的情况翻转了也无法改变奇偶性。因此通过\(k\)的奇偶性......
  • C# List.Reverse 方法使用
    此方法用于Array.Reverse反转元素的顺序usingSystem;usingSystem.Collections.Generic;publicclassExample{publicstaticvoidMain(){List<string>dinosaurs=newList<string>();dinosaurs.Add("Pachycephalosaurus")......
  • CF1864B Swap and Reverse
    思路刚看懂题意时感觉很难,但是观察样例后,大胆猜测,\(k\)为偶数时,直接排序;\(k\)为奇数时,分奇偶位排序。快速了写了程序,一交果然AC。其实很简单,这里给出证明:首先,操作\(1\)保证了奇数位和偶数位上的字符可以任意变动顺序。然后,操作\(2\)当\(k\)为偶数时,可以改变一个字符......
  • DWR的注释(annotations)使用及反向调用(Reverse Ajax)
    先说说注释语法,省掉dwr.xml。(自从用了java5之后,现在越看一堆堆的配置文件越烦,越来越喜欢注释方式来的直接简单了)  首先下载最新的稳定版本的dwr.jar文件放到你的工程中。(还有需要其它的吗?不需要了,dwr就是这么简单)然后在web.xml中添加如下一段<!--DWRServlet--><servle......
  • BUGKU逆向reverse 1-8题
    练习IDA两年半打开尘封已久的bugku,从题目中练习使用,现在都已经是新版本了orz入门逆向运行baby.exe将解压后的baby.exe拖到IDA里面主函数中找到mov指令可以看到这里就是flagflag{Re_1s_S0_C0OL}signin下载附件解压之后是sign_in.apk,Android逆向我不会啊orz丢到AndroidKil......