首页 > 其他分享 >第一鲜花外传一:卡评测

第一鲜花外传一:卡评测

时间:2023-05-18 20:58:04浏览次数:46  
标签:外传 tmp 评测 鲜花 int cin ky pi id

《不归之人与望眼欲穿的人们》是一道著名 Ynoi,并被搬至联考,这题有一定卡常的性质。强大的 ky 做了这道题。由于他太弱小,没有能通过 6、7、20 三个测试点。为了解决这一卡常问题,ky 进行了分块题卡常的传统步骤:调大调小块长后观察变化,并发现块长为 400 时可以通过测试点 6、7,开到 1000 最快,而块长为 150 时可以通过测试点 20,并且很快

面对这一两难困境,普通人可能选择:

  1. 优化代码写法,浪费生命。
  2. 套取数据特判,自欺欺人。
  3. 抄袭题解通过,丧失底线。
  4. 放弃继续卡常,毫无追求。

强大的 ky 不是普通人,他选择了卡评测。具体地,以下程序以 50% 的概率使用 150 块长,否则使用 1000。

// Author: kyEEcccccc

#include <bits/stdc++.h>

using namespace std;

using LL = long long;
using ULL = unsigned long long;

#define F(i, l, r) for (int i = (l); i <= (r); ++i)
#define FF(i, r, l) for (int i = (r); i >= (l); --i)
#define MAX(a, b) ((a) = max(a, b))
#define MIN(a, b) ((a) = min(a, b))
#define SZ(a) ((int)((a).size()) - 1)

mt19937 ran(chrono::system_clock::now().time_since_epoch().count());
const int N = 50005, B = ran() & 1 ? 150 : 1000, B1 = N / 150 + 5, B2 = 1000 + 5;

int n, m, a[N];
int mx[B1][B2], all[B1];
vector<pair<int, int>> pre[B1], suf[B1];

inline int getid(int x) { return (x - 1) / B + 1; }
inline int getfr(int id) { return min(n + 1, (id - 1) * B + 1); }

bool exi[31];

void build_block(int id)
{
	int l = getfr(id), r = getfr(id + 1) - 1;

	F(i, 1, B) mx[id][i] = 0;
	vector<pair<int, int>> tmp;
	suf[id].clear();
	all[id] = 0;
	F(i, l, r)
	{
		all[id] |= a[i];
		tmp.clear();
		F(j, 0, 30) if (a[i] >> j & 1) tmp.push_back({i, j});
		for (auto pi : suf[id]) if (!(a[i] >> pi.second & 1)) tmp.push_back(pi);
		suf[id].swap(tmp);

		int x = 0;
		for (auto pi : suf[id])
		{
			x |= 1 << pi.second;
			MAX(mx[id][i - pi.first + 1], x);
		}
	}
	F(i, 1, B) MAX(mx[id][i], mx[id][i - 1]);

	F(j, 0, 30) exi[j] = 0;
	pre[id].clear();
	int x = 0;
	F(i, l, r) F(j, 0, 30) if (a[i] >> j & 1 && !exi[j])
	{
		exi[j] = 1;
		x |= 1 << j;
		pre[id].push_back({i, x});
	}
	reverse(pre[id].begin(), pre[id].end());
}

int query(int x)
{
	int res = n + 1;
	vector<pair<int, int>> vec, tmp;
	F(id, 1, getid(n))
	{
		if (!vec.empty())
		{
			int p = 1, y = 1 << vec[0].second;
			for (auto pi : pre[id])
			{
				while (p < vec.size() && (y | pi.second) < x)
					y |= 1 << vec[p++].second;
				if ((y | pi.second) < x) break;
				MIN(res, pi.first - vec[p - 1].first + 1);
			}
		}
		
		tmp = suf[id];
		for (auto pi : vec) if (!(all[id] >> pi.second & 1)) tmp.push_back(pi);
		vec.swap(tmp);

		int cl = 1, cr = B;
		while (cl <= cr)
		{
			int cm = (cl + cr) >> 1;
			if (mx[id][cm] >= x) cr = cm - 1, MIN(res, cm);
			else cl = cm + 1;
		}
	}
	return res == n + 1 ? -1 : res;
}

signed main(void)
{
	// freopen(".in", "r", stdin);
	// freopen(".out", "w", stdout);
	ios::sync_with_stdio(0), cin.tie(nullptr);

	cin >> n >> m;
	F(i, 1, n) cin >> a[i];
	F(i, 1, getid(n)) build_block(i);

	F(i, 1, m)
	{
		int op; cin >> op;
		if (op == 1)
		{
			int p, x; cin >> p >> x;
			a[p] = x;
			build_block(getid(p));
		}
		else
		{
			int x; cin >> x;
			cout << query(x) << '\n';
		}
	}
	
	return 0;
}

这是他的战果:

ky 素质如此!ky 好闪,拜谢 ky!

标签:外传,tmp,评测,鲜花,int,cin,ky,pi,id
From: https://www.cnblogs.com/kyeecccccc/p/17413251.html

相关文章

  • 电视盒子cpu天梯图排行榜 2023电视盒子cpu对比评测
    一、2023电视盒子cpu对比评测目前国内主流就是晶晨、瑞芯微、mtk、全志等品牌处理器芯片,晶晨、瑞芯微是用的比较多的,也是比较好的,接下来就来看看这两个芯片的主流cpu对比:电视盒子选哪款好这些点很重要看过你就懂了 http://www.adiannao.cn/dy1.晶晨芯片晶晨半导体的机顶盒解决......
  • 达人评测 r7 7730U和R5 7530U选哪个好 锐龙r77730U和R57530U对比
    AMD锐龙77730U采用Barcelo8核心/16线程主频2.0GHz最高频率4.5GHz三级缓存运行内存16M内存类型LPDDR4X内存频率4266MHz选r77730U还是R57530U这些点很重要http://www.adiannao.cn/dyR57530U采用Zen3架构为6核12线程,3MB二级缓存,16MB三级缓存 ......
  • 评测i9 13900hx和​​R9 7940HS选哪个 酷睿i913900hx和​​锐龙R97940HS对比
    i913900Hx采用10nm制作工艺最高睿频5.4GHz二十四核心三十二线程三级缓存36MB热设计功耗(TDP)157W选i913900hx和R97940HS这些点很重要看过你就懂了http://www.adiannao.cn/dyR97940HS采用了4nm工艺,采用8核Zen4CPU,并且搭载最新的锐龙AI引擎,CPU频率可达5.2GHz,拥有......
  • 鲜花记账
    题目描述:小明开了一家鲜花店,鲜花价格:玫瑰花5.5元一支,满天星4.0元一支。若某顾客买m枝玫瑰,n枝满天星,加上包装费,最后需要支付的费用就多少?(保留1位小数)(包装费固定,价格需由样例得出)输入格式:输入两个整数m,n。输出格式:输出最后的总费用。格式参考样例。样例输入:53样例输出:t......
  • 华硕ROG STRIX B760-G GAMING WIFI小吹雪D5评测:最能超的小主板 轻松提升14%
    一、前言:华硕推出新版B760-G小吹雪主板加入DDR5内存支持和以往的每一代规格一样,DDR5内存上市初期的表现并不如人意,频率是高了,但延迟也高了,导致性能提升一般般。经过一两年的演进,DDR5内存的时序延迟得到了极大的改善,再加上频率、带宽的明显进步,尤其是价格的平民化,DDR5内存逐渐成......
  • 【2023.05.08】keepley周杰伦DZ0155周同学积木评测
    前言本人是自费购买积木,购买原因是给妹妹培养动手能力,减少短视频占用时间,其次是给家里做摆饰,所以选择积木多考虑了美观非专业评测,如果想看更多积木评测请点进我的博客主页分类查看正文原本这个积木是粉色的,改成黑色替换件的话比较麻烦,简便的方法是将原包装内的粉色挑出来(因......
  • 多维评测指标解读2022MSU世界编码器大赛结果
    是极致性能,更是最佳商用。19项第一之上,是63%的极致带宽降低近日,2022MSU世界视频编码器大赛成绩正式揭晓。报告显示,阿里媒体处理服务MPS(AlibabaMediaProcessingService)s264及s265编码器共计斩获19项评测第一,相较大赛指定基准编码器(AWSElementalMediaConvert),可再节省高达63......
  • 软件评测师--上班族备考过程记录
     考试目的:系统学习软件测试相关的知识通过软件评测师考试,拿到中级证书 报名时间:下半年7月底或8月底报名缴费:http://bm.ruankao.org.cn/sign/welcome有些地方不支持网上支付的,需要去当地单位缴费考试时间:2023/11/9考试规则:上午9点到11点半,基础知识,单选题(2B铅笔填涂答案,......
  • 《花雕学AI》20:ChatGPT使用之体验评测AI EDU的网页版+桌面端+Android+App store组合
    最近准备出门,要去新疆哈密参加活动,一直在寻找手机上可用的AI移动端。昨天在网上偶然找到了AIEDU(这个不是MSRA创立的人工智能开源社区),其链接是:https://ai.aigcfun.com,今天就尝试做个相关体验与学习的记录。打开首页如下:  引言:人工智能聊天机器人ChatGPT是一种基于GPT-......
  • 对射式红外传感器计次(旋转编码器计次)及外部中断的应用(实物未到待完善)
    【1.什么样的设备需要外部中断】STM32想要获取的信号是外部驱动的很快的突发信号按键不推荐,外部中断不好处理按键抖动和松手检测的问题,可以在主程序中循环读取或定时器中断读取的方式【2.使用外部中断有什么样的好处】有脉冲过来,STM32立即进入中断函数处理没有脉冲的时候,S......