贪心+多维度dp

news2024/11/16 17:44:48

前言:处理简单版本的时候,想到了贪心,以及暴力求解顺便剪枝一下,要注意边界问题

haed版本的时候,完全行不通了,m的范围到了200,这是不可以暴力求解的

但是我不知道如何定义状态转移方程,按照我们easy的版本思路,首先我们肯定是要先排序


在这里插入图片描述

#include<bits/stdc++.h>
using namespace std;

#define int long long
const int N = (int)205;
const int Mod = (int)998244353;
int n,m;
int ans;
struct node{
	int l,r;
	bool operator<(node b){
		return l < b.l;
	}
}sto[N];

void dfs(int i,int last1,int last2){
	if(i==m+1){
		if(last2>=n){
			ans=(ans+1)%Mod;			
		}
 		return;
	}
	int l = sto[i].l , r = sto[i].r;
	if(l>=last2+2){
		// 不符合条件 
		return; 
	}
	dfs(i+1,max(last1,r),max(last2,min(last1,r)));
	dfs(i+1,last1,last2);
}

signed main(){
	cin >> n >> m;
	for(int i=1;i<=m;i++){
		cin >> sto[i].l >> sto[i].r;
	}	
	sort(sto+1,sto+1+m);
	dfs(1,0,0);
	cout << ans;
	return 0;
}

在这里插入图片描述

在这里插入图片描述

注意我们离散化的时候左端点减一,这是为了处理我们的衔接边界

#include<bits/stdc++.h>
using namespace std;

#define ll long long
const int N = (int)1e5+10,mod = 998244353;

int dp[401][401][401];
void add(int &ret,int x){
	ret = (ret+x) % mod;
}

void solve(){
	int n,m;
	cin >> n >> m;
	vector<int> v;
	vector<int> s(m+1),t(m+1);
	// 离散化处理
	for(int i=1;i<=m;i++){
		cin >> s[i] >> t[i];
		s[i]--; v.push_back(s[i]);
		v.push_back(t[i]); 
	}  
	// 存储 0 ,n
	v.push_back(0),v.push_back(n);
	sort(v.begin(),v.end());
	v.resize(unique(v.begin(),v.end())-v.begin());
	n = v.size();
	vector<pair<int,int>> a(m+1);
	for(int i=1;i<=m;i++){
		s[i] = lower_bound(v.begin(),v.end(),s[i]) - v.begin();
		t[i] = lower_bound(v.begin(),v.end(),t[i]) - v.begin();
		a[i] = {s[i],t[i]};
	} 
	sort(a.begin()+1,a.end());
	dp[0][0][0] = 1;
	for(int k=1;k<=m;k++){
		for(int i=0;i<n;i++){
			for(int j=0;j<n;j++){
				if(dp[k-1][i][j]==0) continue;
				add(dp[k][i][j],dp[k-1][i][j]); // 不取的情况,i和j不改变
				if(a[k].first<=i){
					add(dp[k][max(i,min(a[k].second,j))][max(j,a[k].second)],dp[k-1][i][j]);
				} 
			}
		}
	}
	cout << dp[m][n-1][n-1];
}

int main(){
	solve();
	return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2053008.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hutool糊涂包JSON相关方法汇总

目录 1. JSON 对象 (JSONObject) 的创建 2. 向 JSONObject 添加键值对 3. 从 JSONObject 获取值 4. JSON 对象与字符串之间的转换 5. JSON 对象与 Java Bean&#xff08;POJO&#xff09;之间的转换 6. JSON 数组 (JSONArray) 的使用 7. JSON 数组与 Java List 之间的转…

Unity的UI设计

目录 创建和布局 布局与交互 性能优化 最佳实践 学习资源 Unity UI Toolkit与uGUI和IMGUI之间的具体区别和适用场景是什么&#xff1f; Unity UI Toolkit uGUI IMGUI 如何在Unity中实现响应式UI设计以适应不同设备尺寸&#xff1f; Unity UI性能优化的最新技术和方法…

8.MySQL知识巩固-牛客网练习题

目录 SQL228 批量插入数据 描述 SQL202 找出所有员工当前薪水salary情况 描述 示例1 SQL195 查找最晚入职员工的所有信息描述 示例1 SQL196 查找入职员工时间排名倒数第三的员工所有信息描述 SQL201查找薪水记录超过15条的员工号emp_no以及其对应的记录次数t 描述 SQL…

后端Web之数据库多表设计

1.概述 项目开发中,在进行数据库表结构设计时&#xff0c;会根据业务需求及业务模块之间的关系&#xff0c;分析并设计表结构&#xff0c;由于业务之间相互关联&#xff0c;所以各个表结构之间也存在着各种联系,基本上分为三种:一对多、多对多、一对一。 数据库的多表设计是关…

JavaWeb——MVC架构模式

一、概述: MVC(Model View Controller)是软件工程中的一种 软件架构模式 &#xff0c;它把软件系统分为模型、视图和控制器三个基本部分。用一种业务逻辑、数据、界面显示分离的方法组织代码&#xff0c;将业务逻辑聚集到一个部件里面&#xff0c;在改进和个性化定制界面及用户…

字符串专题——字符串相乘

1、题目解析 2、算法解析 1、解法一 使用模拟的方法&#xff1a;模拟小学的列竖式运算 细节1&#xff1a;高位相乘的时候要补上“0” 细节2&#xff1a;处理前导“0” 细节3&#xff1a;注意计算结果的顺序 2、解法二 对比解法一做优化->无进位相乘然后相加&#xff0…

Huawei Matebook e 2022 安装 archlinux 双系统

本文同步发布于我的网站 安装之前 wifi 名称修改为英文数字的&#xff0c;以防之后没法联网 准备好 U 盘并使用 GPT 分区表写入最新的 arch 镜像。 基础安装 开机按 F2 进入 UEFI/BIOS 设置&#xff0c;将 Secure Boot&#xff08;安全启动&#xff09;关闭&#xff0c;按…

AI学习记录 - transformers 的 linear 词映射层的详细分析, CrossEntropyLoss 函数解析

创作不易&#xff0c;有用的话点个赞。。。。。。 1. 假设条件 词汇表&#xff1a;假设词汇表包含四个词汇&#xff1a;[token_0, token_1, token_2, token_3]。 模型的输出概率分布&#xff1a;模型的输出经过 Softmax 转换后&#xff0c;得到概率分布&#xff1a;[0.1,0.5,…

JavaScript - Api学习 Day1(WebApi、操作DOM对象)

应用编程接口 (API) 是编程语言中提供的结构&#xff0c;允许开发者更轻松地创建复杂的功能。、 webapi 是一套 操作网页内容(DOM) 与 浏览器窗口(BOM) 的对象Js由ECMAScript、DOM、BOM三个部分组成。 文章目录 零、前言0.1 变量声明 壹、WebAPI的认识1.1 作用1.2 什么是DOM1…

【AI大模型】解锁AI智能:从注意力机制到Transformer,再到BERT与GPT的较量

文章目录 前言一、揭秘注意力机制&#xff1a;AI的焦点如何塑造智能1.什么是注意力机制&#xff1f;2.为什么需要注意力机制&#xff1f; 二、变革先锋&#xff1a;Transformer的突破与影响力1.什么是Transformer&#xff1f;2.为什么Transformer如此重要&#xff1f; 三、路径…

《给所有人的生成式 AI 课》学习笔记(一)

前言 本文是吴恩达&#xff08;Andrew Ng&#xff09;的视频课程《Generative AI for Everyone》&#xff08;给所有人的生成式 AI 课&#xff09;的学习笔记。由于原课程为全英文视频课程&#xff08;时长约 3 个小时&#xff09;&#xff0c;且国内访问较慢&#xff0c;阅读…

零基础转行学网络安全怎么样?

在当今数字化飞速发展的时代&#xff0c;网络安全已成为备受瞩目的领域。那么&#xff0c;对于零基础的人来说&#xff0c;转行学习网络安全究竟怎么样呢? 网络安全行业正处于蓬勃发展的阶段。随着互联网的普及和信息技术的不断进步&#xff0c;网络安全问题日益凸显。政企单位…

本地私有化部署PDF处理神器Stirling PDF并实现无公网IP远程在线访问

文章目录 前言1. 安装Docker2. 本地安装部署StirlingPDF3. Stirling-PDF功能介绍4. 安装cpolar内网穿透5. 固定Stirling-PDF公网地址 前言 本篇文章我们将在Linux上使用Docker在本地部署一个开源的PDF工具——Stirling PDF&#xff0c;并且结合cpolar的内网穿透实现公网随时随…

文心一言 VS 讯飞星火 VS chatgpt (328)-- 算法导论22.5 4题

四、证明&#xff1a;对于任意有向图 G G G来说&#xff0c; ( ( G T ) S C C ) T G S C C ((G^T)^{SCC})^TG^{SCC} ((GT)SCC)TGSCC。也就是说&#xff0c;转置图 G T G^T GT的分量图的转置与图 G G G的分量图相同。如果要写代码&#xff0c;请用go语言。 文心一言&#xff1…

葡萄叶片病虫害数据集。葡萄数据集。葡萄病虫害数据集。

葡萄叶片病虫害数据集。葡萄数据集。葡萄病虫害数据集。 数据集有两种规格&#xff0c;请仔细阅读下面信息以免拍错 [1]规格一&#xff1a;适用于分类任务的数据集&#xff0c;标准的ImageNet数据集格式。注意不是txt格式的更不是xml格式的。数据集已经按照train、val划分好&am…

上海亚商投顾:沪指窄幅震荡 华为海思、猴痘概念股集体爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 市场全天窄幅震荡&#xff0c;三大指数涨跌不一。华为海思概念股持续爆发&#xff0c;世纪鼎利、天邑股份、汇…

ProGrad:Prompt-aligned Gradient for Prompt Tuning

文章汇总 存在的问题 问题1 如图(a),(b)&#xff1a;CoOp随着训练的继续&#xff0c;泛化能力可能会下降&#xff0c;甚至低于zero-shot基线。 如图©,(d)&#xff1a;在shot比较小的情况&#xff0c;即数据量比较少的情况(1-shot,2-shot)&#xff0c;CoOp的性能可能还不…

和鲸携手山东大学数字人文实验室,推动新文科与人工智能融合发展

为深入推进产教融合与校企合作&#xff0c;推动人工智能在人文学科中的广泛应用与深入发展&#xff0c;8 月 15 日&#xff0c;山东大学数字人文实验室与和鲸科技 101 计划推进会暨新文科人工智能实验室标杆案例打造讨论会于威海顺利召开。山东大学数字人文实验室副主任陈建红、…

基于Docker部署最新版本Jenkins

一、创建jenkins挂载路径 mkdir /var/jenkins_home chmod 777 /var/jenkins_home二、运行Jenkins最新lts镜像 docker run -d --name jenkins -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home --restartalways jenkins/jenkins:latest将/var/jenkins_ho…

若依小程序使用及遇到的问题

1、首先去官网拉取小程序代码&#xff0c;从HBuildx运行到小程序 这个时候项目起来了&#xff0c;但是小程序发生了报错&#xff1b; 解决方法 在 project.config.json 新增指定 app.json 路径 ★一定要有 unpackage文件夹 如果没有的需要到HBuilder X 编译一下&#xff0c;编…