2021杭电多校第四场 1008——Lawn of the Dead

Unity详细介绍说明限制Unity帧率的方式 在Unity开发中,帧率(FPS,Frames per Second)是一个非常重要的表现标准,它直接影响了游戏运行的流畅度。在某些应用场景里,我们可能需要手动限制帧率。限制帧率可以减少电脑的CPU和GPU负载,使运行更加稳定,同时对于移动设备来说还能有效降低电量消耗。下面就详细介绍几种限制Unity中帧率的方式。 阅读详情

题目大意

给你一个 n×mn\times mn×m 的矩阵,给你 kkk 个点,表示这些点不可走,你从起点 (1,1)(1,1)(1,1) 出发,你每次只能向下或向右走,问你有多少个点是可到达的

解题思路

由于这道题没有限制总的 n×mn\times mn×m 之和小于一个值,题面给的是 ∑n≤107,∑m≤107\sum n \leq 10^7, \sum m \leq 10^7∑n≤107,∑m≤107,所以不可以直接 bfsbfsbfs
我们可以用两个线段树来做,两个线段树进行滚动,一个线段树维护的是上一行可到达的点,另一个线段树维护当前行可到达的点,线段树的query是返回可走点的最左端点。
考虑如何转移,记录一个 l=1l=1l=1 对于当前行不可走的点 jjj,查询上一行线段树区间 [l,j][l,j][l,j] 可走点的最左端点 pospospos。
如果没有则将当前行线段树这一段标记为不可走。
如果有,则标记 [l,pos−1][l,pos-1][l,pos−1] 为不可走,[pos,j−1][pos,j-1][pos,j−1] 为可走,点 jjj 为不可走。
然后让 l=j+1l=j+1l=j+1
可走标为 111, 不可走标为 000
那么当前线段树的和即为当前行的答案。
在 pushdownpushdownpushdown 时,lazylazylazy 为 0,10,10,1都要往下 pushdownpushdownpushdown,然后标记为 −1-1−1 ,因为是两个线段树滚动,lazylazylazy 为 000 可能下面的线段树节点并没有清空,会导致错误的答案。

Code

#include <bits/stdc++.h>
#define ll long long
#define qc ios::sync_with_stdio(false); cin.tie(0);cout.tie(0)
#define fi first
#define se second
#define PII pair<int, int>
#define PLL pair<ll, ll>
#define pb push_back
using namespace std;
const int MAXN = 2e5 + 7;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3f;
const ll mod = 1e9 + 7;
inline int read()
{
    int x=0,f=1;char ch=getchar();
    while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}
    while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
    return x*f;
}
int tree[2][MAXN << 2], add[2][MAXN << 2];
void pushup(int rt, int f){
	tree[f][rt] = tree[f][rt << 1] + tree[f][rt << 1 | 1];
}
void pushdown(int rt, int f, int len){
	if(add[f][rt] != -1){
		tree[f][rt << 1] = add[f][rt] * (len - (len >> 1));
		add[f][rt << 1] = add[f][rt];
		tree[f][rt << 1 | 1] = add[f][rt] * (len >> 1);
		add[f][rt << 1 | 1] = add[f][rt];
		add[f][rt] = -1;
	}
}
void update(int f, int L, int R, int x, int l, int r, int rt){
	if(L <= l && r <= R){
		tree[f][rt] = (r - l + 1) * x;
		add[f][rt] = x;
		return ;
	}
	pushdown(rt, f, r - l + 1);
	int m = (l + r) >> 1;
	if(L <= m)
		update(f, L, R, x, l, m, rt << 1);
	if(m < R)
		update(f, L, R, x, m+1, r, rt << 1 | 1);
	pushup(rt, f);
	return ;
}
int query(int f, int L, int R, int l, int r, int rt){
	if(tree[f][rt] == 0) return inf;
	if(l == r) return l;
		int m = (l + r) >> 1;
	pushdown(rt, f, r-l+1);
	if(L <= l && r <= R){
		if(tree[f][rt << 1]) return query(f, L, R, l, m, rt << 1);
		else return query(f, L, R, m+1, r, rt << 1 | 1);
	}
	else{
		int ret = inf;
		if(L <= m)
			ret = min(ret,query(f, L, R, l, m, rt << 1));
		if(m < R)
			ret = min(ret,query(f, L, R, m+1, r, rt << 1 | 1));
		return ret;
	}
}
int n, m, k;
vector<int> v[MAXN];
void solve(){
	cin >> n >> m >> k;
	for (int i = 1; i <= k; ++i){
	    int x, y;
		cin >> x >> y;
		v[x].pb(y);
	}
	for (int i = 1; i <= n; ++i){
	    sort(v[i].begin(), v[i].end());
	}
	memset(add, -1, sizeof add);
	memset(tree, 0, sizeof tree);
	update(1, 1, 1, 1, 1, m+1, 1);
	ll ans = 0;
	for(int i = 1; i <= n; i++){
		int l = 1;
		v[i].pb(m+1);
		for(int j : v[i]){
			int pos = query(i & 1, l, j, 1, m+1, 1);
			if(pos == inf){
				update((1&i)^1, l, j, 0, 1, m+1, 1);
			}
			else{
				if(l <= pos-1)
					update((1&i)^1, l, pos-1, 0, 1, m+1, 1);
				if(pos <= j-1)
					update((1&i)^1, pos, j-1, 1, 1, m+1, 1);
				update((1&i)^1, j, j, 0, 1, m+1, 1);
			}
			l = j + 1;
		}

		ans += tree[(i&1)^1][1];
	}
	cout << ans << "\n";
	for (int i = 1; i <= n; ++i){
	    v[i].clear();
	}
}

int main()
{
    #ifdef ONLINE_JUDGE
    #else
       freopen("in.txt", "r", stdin);
       freopen("out.txt", "w", stdout);
    #endif

    qc;
    int T;
    cin >> T;
    // T = 1;
    while(T--){

        solve();
    }
    return 0;
}

某勾网之登录过程逆向 拉勾网的登录过程逆向,包含请求头(X-S-HEADER、X-K-HEADER、X-SS-REQ-HEADER等) 以及 请求参数/返回数据的加解密。 阅读详情

相关推荐

sentaurus学习笔记(HFET_pGate_GaN仿真)(五)

`(sdedr:define-constant-profile`和`(sdedr:define-constant-profile-region`命令用于定义并应用一个恒定的活性硼掺杂浓度剖面`"ndop_GaN_gate_const"`到氮化镓栅极层上,其值为`NpGaN_gate`。- `"Oxide"`指定了这一层的材料名称(在这里代表氧化层),而`"nucleation"`是这一层在仿真中的标识名称。- `"GaN"`指定了这一层的材料名称,而`"GaN_gate"`是这一层在仿真中的标识名称。

qq_52640792的博客 940

杭电ACM 1008题电梯问题C++解题思路

杭电ACM 1008题C++解题思路题目要求:输入格式:输入样本:输出样本:题目分析:代码:输入结果: 题目要求: 我们城市最高的建筑物只有一部电梯。请求列表由N个正数组成。数字按指定顺序指示电梯将停在的楼层。将电梯上移一层需要花费6秒钟,而将一层下移则需要4秒钟。电梯将在每个站点停留5秒钟。 对于给定的请求列表,您将计算完成列表上的请求所花费的总时间。电梯在开始时位于0楼,并且在满足请求后不必返回一楼。 输入格式: 有多个测试用例。每个案例包含一个正整数N,后跟N个正数。输入中的所有数字均小于100。N

weixin_45968792的博客 3079

EMC案例:解决千兆网口RTL8211F EMI问题

摘要:本文分析了Amlogic S812平台OEM项目中RTL8211F-CG千兆网卡EMI辐射超标问题。发现百兆测试时25MHz时钟有3dB余量,但千兆125MHz时钟导致超标。问题根源包括:未关闭PHY芯片悬空CLKOUT引脚、TX/RXCLK端RC位置错误、包地不完整及参考地缺失。解决方案涉及软件关闭无用时钟、优化RC布局、加强包地与打孔、调整共模电感位置,并在HDMI 3.3V加磁珠。关键结论指出千兆网125MHz时钟需严格包地打孔,且RC取值需平衡EMI与通信性能。

电子绿洲的博客 1278

杭电 OJ-ACM1008(Elevator)

杭电OJ

m0_73891157的博客 833

别再只画GO图了!用R语言+Perl脚本搞定单细胞KEGG富集分析与圈图(附完整代码)

本文详细介绍了如何利用R语言和Perl脚本实现单细胞KEGG富集分析全流程,从基因ID转换到专业圈图可视化。通过对比KEGG与GO分析的互补价值,提供完整的代码实现和优化技巧,帮助研究者高效完成单细胞测序数据的通路分析,并生成高质量的圈图展示结果。

weixin_28694169的博客 403

Skyworks SKY85331-11的Wi-Fi 6 (802.11ax)标准 2.4G 高功率WLAN前端模块解决方案

SKY85331-11是高度集成的2 GHz前端模块(FEM)包含2 GHz单刀双掷(SPDT)发送/接收(T / R)开关,2 GHz低噪声放大器(LNA)带旁路和一个2 GHz功率放大器(PA),用于大功率802.11ax应用程序和系统LNA和PA禁用功能可确保低漏电流 关闭模式。 包括一个集成的功率检测器以提供系统内的闭环功率控制。该设备提供Small (24-pin, 3 x 5 mm) (LGA)封装。 图1.引脚配置和封装如图所示 图2.信号引脚分配和功能引脚描述 图...

zhangbao19890622的博客 4504

杭电oj(1008、1012、1013、1014、1017)题解

杭电oj(1008、1012、1013、1014、1017)题解。

欢迎大家一起讨论交流 1199

企业微信API实战:解密external_userid的跨应用一致性管理

本文深入探讨企业微信API中external_userid的跨应用一致性管理问题,解析其本质及在不同应用场景下的ID不一致挑战。通过ID转换与统一管理方案,结合unionid实现跨应用客户数据整合,提供实战代码示例和架构设计,助力企业构建高效的客户管理系统。

weixin_29258297的博客 636

算法导论 思考题6-3(Young氏矩阵)

思考题6-3(Young氏矩阵)在一个m×nm\times nm×n的Young氏矩阵(Young tableau)中,每一行的数据都是从左到右排序的,每一列的数据都是从上到下排列的。Young氏矩阵中也会存在一些为∞\infin∞的数据项,表示那些不存在的数据。因此,Young氏矩阵可以用来村出r≤mnr \leq mnr≤mn个有限的数。 a. 画出一个包含元素{9,16,3,2,4,8,5,...

生命不息,代码不止 561

SAP MD09 事务码中的物料需求追溯详解

物料需求追溯是指在物料需求计划中,追踪特定物料的需求来源和满足方式的过程。它帮助企业确定每个需求(如销售订单、独立需求、预留等)是由哪些供应元素(如库存、生产订单、采购订单等)来满足的。通过这种追溯,企业可以了解需求和供应之间的关系,从而优化生产和采购计划,减少库存积压,提升供应链效率。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1193

深入理解JVM虚拟机第一篇:Java跨平台和字节码以及多语言混合编程

本位描述了Java的跨平台和JVM的跨平台的作用,Java语言的字节码的概念多语言混合编程应用到JVM虚拟机以及Java发展的重大事件。

七叔的博客 1万+

[微软面试题]01.07旋转矩阵

面试题 01.07. 旋转矩阵 给你一幅由 N × N 矩阵表示的图像,其中每个像素的大小为 4 字节。请你设计一种算法,将图像旋转 90 度。 不占用额外内存空间能否做到? 示例 1: 给定 matrix = [ [1,2,3], [4,5,6], [7,8,9] ], 原地旋转输入矩阵,使其变为: [ [7,4,1], [8,5,2], [9,6,3] ] 示例 2: 给定 matrix = [ [ 5, 1, 9,11], [ 2, 4, 8,1

pukka的博客 418

2023.03.27更新大麦网PC端抢购软件和使用教程

近期发现大麦网页端抢购页面悄然发生变化,之前可以在页面选择票价、档次,并且点击按钮进行购票,现在不行了,新的页面如下图所示。已经安全没有了点击按钮,因此,但是并不代表不能像以前之前那样。

猫敷雪 1万+

2021 MINIEYE杯 杭电多校4 1007 Increasing Subsequence 单调栈 1008 Lawn of the Dead 线段树

1008Lawn of the Dead 原题链接 题意:在一张n x m的网格中,左上角是(1,1),右下角是(n,n)。从(1,1)开始,只能往下或往右移动,在某些点上有地雷,不能移动到有地雷的点上,且不能移动出边界,求可能到达的点的数量。 分析:当某个点的上方和左边都不可到达时,该点不可到达,并会对该点下方和右边的点造成影响。考虑从上往下对每行排序后的地雷进行处理。对于每个地雷(x,y),找到(x-1,y+1)开始的从左往右不可到达的范围,那么x这行的这个范围也不可到达。对一行可以用线段树实现.

qq_27873307的博客 173

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(4)

题目链接:Problem - 6992 (hdu.edu.cn) 题意:一个僵尸来到一块n×m的格子,最初在左上角的(1,1),只能向右或者向下走,在格子中有k个矿井,矿井处是不能到达的,问僵尸最多能到达多少个格子? 题解: ...

asiip的博客 275

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

杭电1008

这明显就是一道水题,但是还是用了我很多时间,看来我真的很水啊,先上代码吧 #include #define maxsize 100 int main(){ int N,i,totaltime; int a[maxsize]; scanf("%d",&N); while(N!=0){ totaltime=N*5; //------3 a[0]=0;

windowsshaking的专栏 948

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

杭电1008 Elevator

Elevator Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 7   Accepted Submission(s) : 5 Font: Times New Roman | Verdana | Georgia Font Siz

笨鸟 912

HDU-1008-电梯

问题描述 我们城市最高的建筑只有一部电梯。请求列表由N个正数组成。数字表示电梯将以指定顺序停在哪些楼层。将电梯向上移动一层需要6秒钟,向下移动一层楼需要4秒钟。电梯将在每个站点停留5秒钟。 对于给定的请求列表,您将计算在列表上完成请求所花费的总时间。电梯在开始时位于0楼,并且在满足要求时不必返回到底层。     输入 有多个测试用例。每个案例包含一个正整数N,后跟N个正数。输入中的所有数...

fffzlfk的博客 1000

杭电ACM1008

Elevator 从键盘输入N(电梯停的个数,N 分析:每上升一层则加6,每下降一层则加4,如果层数与输入的数一样则加5。 例如: 输入:1 2    总的时间sum=6+6+5=(2-0)*6+5=17; 输入:3 2   3   1    总的时间sum=6+6+5+6+5+4+4+5=(2-0)*6+5+(3-2)*6+5+(3-1)*4+5=41; 做这道题的时候,真心

知足~的博客 2636

十字架(百度2017秋招真题)深入解析

题目链接 首先这个题目必定是递归思想,因为大的图形当中又会套上小的图形 其次必须先确定图形的中点,因为由图形的中点可以确定下来图形的位置,从中间向周围加上中间五个方向分布进行递归图形,这里我通过递归一个图形的四个边界进行中点位置的递归 这里关键是求出data1与data2的长度,从而能够继续进行递归 ...

小姑仔的博客 516

杭电1008题

#include using namespace std; int main() { int iStopCount; int iStopTimePerFloor = 5; int iMoveUpTimePerFloor = 6; int iMoveDownTimePerFloor = 4; int iCurrentStopFloor; int iSumTime; while(c

自然语言处理大菜鸟--HsingWang 1679

杭电ACM1008电梯问题C++

/* 时间:2012.03.17 作者:烟大洋仔 题目: Problem Description The highest building in our city has only one elevator. A request list is made up with N positive numbers. The numbers denote at which floors the

王洋的专栏 1万+

2021杭电多校第四场

Calculus 签到题。看题解说都是收敛的,不过似乎我觉得有3个收敛的,跟c的取值有关,判断一下就好了。 #include<bits/stdc++.h> using namespace std; string s; void solve() { cin >> s; bool flag = true; for(int i = 0;i < s.size();i ++ ) { if(i == 0) {

weixin_46554592的博客 317
上一篇: 2021杭电多校第二场 1001——I love cube
下一篇: 2021杭电多校第二场 1005——I love string
Linda_yezi_coder
博客等级 码龄7年 20粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值