省实集训总结 DAY1(深搜+DP+宽搜)

清北学堂集训day1 咳咳。。 先说一些题外话,这么久不更是有原因的,集训+初赛占得时间太多了了 段考都爆炸了 嗯,我居然初赛过了!!??看到今年试卷的时候我还以为要翻车了呢。。。 不说了,下面应该会对清北学堂这些天的集训题目AC一下,会陆续发上来的,嗯,复赛之前发完??(雾) 阅读详情

问题 E: 生成字符串(strs)
【问题描述】
假设字符串只由字符“0”,“1”,“”组成,其中字符“”表示该字符可由字符“0”或“1”替代。
现有一些字符串,根据这些字符串生成所有可生成的字符串。如:
{10,1,0 }可生成{10,01,11,00 }
{101,001,*01}可生成{101,001}
注意后一个例子中“*01”并没有生成新的字符串。
【输入格式】
第一行是两个整数m,n(1≤m≤15,1≤n≤2500)。m表示字符串的长度,n表示字符串的个数。
以下n行每行各有一个字符串。文件中各行的行首、行末没有多余的空格。
【输出格式】
一个整数,表示所能生成的字符串的个数。
【输入样例】
2 3
10
1
0

【输出样例】
4

深搜模版题+二进制
就是有时候会忘掉细节
直接贴标程

#include<bits/stdc++.h>
using namespace std;
int c[40000], ans=0;
int m, n;
char s[20];

int change(char s[]){
	int ret=0;
	for(int i=0; i<strlen(s); i++)
	ret=(ret<<1)+s[i]-'0';
	return ret;
}
void dfs(char s[], int k){
	if(k==m){
		int tt=change(s);
		if(c[tt]==0) ans++, c[tt]=1;
		return;
	} 
	if(s[k]=='*'){
		s[k]='0';
		dfs(s, k+1);
		s[k]='1';
		dfs(s, k+1);
	}else dfs(s, k+1);
}

int main(){
	scanf("%d%d", &m, &n);
	while(n--){
		scanf("%s", s);
		dfs(s, 0);
	}
	printf("%d\n", ans);
	return 0;
}

直接下一题(对,我就是不带解释 )

问题 F: 楼梯(stair)
【问题描述】
有N级楼梯,第i级楼梯的高度是H[i]。ROBIN必须通过一系列的操作来爬楼梯,每一步,ROBIN只能做如下三个选择之一:
1、如果后一级楼梯的高度比ROBIN当前所在楼梯的高度恰好高1,那么ROBIN可以从当前楼梯爬上后一级楼梯。
2、只要ROBIN不是在第1级楼梯,如果ROBIN愿意,ROBIN可以从当前楼梯后退到前一级楼梯。
3、假如ROBIN最近K步都是在后退(不妨假设现在退到了第i级楼梯),那么ROBIN可以从当前的第i级楼梯走一步到达第j级楼梯,其中j > i,而且 满足H[j] – H[i] <= 2K。其中2K表示2的K次方。
ROBIN一开始在第1级楼梯,ROBIN至少要走多少步才能到达第N级楼梯?如果无法到达第N级楼梯,输出-1。
【输入格式】
第一行,一个整数N。(2 <= N <= 50)
第二行,N个整数,第i个整数表示第i级楼梯的高度H[i],高度是升序的。
0 <= H[i] <= 1000000000。H[1]一定等于0。
在这里插入图片描述
典型的dp
第i步有可能从两个地方来:1:从第i-1步(高度相差一)2:从第i-k步(2k>高度差)
代码就出来了(有一个优化:能跳就直接跳)

贴标程

#include<bits/stdc++.h>
using namespace std;
const int INF=200000;
const int N= 50+5;
int f[N], h[N], n;

int main()
{
	cin>> n;
	for(int i=1;i<=n; ++i) cin>> h[i];
	for(int i=1; i<=n; ++i) f[i]=INF;
	f[1]=0;
	for(int i=1; i<=n; ++i)
	{
		if(h[i]-h[i-1]==1) f[i]=min(f[i], f[i-1]+1);
		for(int j=1; j<=i-1; ++j) 
		for(int k=1; k<j; ++k)
			if(h[i]-h[j-k]<=(1<<k)) {
				f[i]=min(f[i], f[j]+k+1);
				break;
			}
	}
	if(f[n]==INF)cout<<-1;
	else cout<< f[n]<< endl;
	return 0;
}

最后一个:(好的我就是这么草率 )(毕竟这些真的没哈子好写的 )
问题 G: 迷宫(migong)
时间限制: 1 Sec 内存限制: 128 MB
提交: 37 解决: 24
[提交][状态][讨论版][命题人:admin]
题目描述

【问题描述】

小刚在迷宫内,他每步只能往上下左右相邻的格子移动一格,且不能走出迷宫范围。他需要从A点出发,按顺序经过B,C,D……,到达最后一个点,再回到A点。迷宫内有些障碍,问至少走几步。

【输入】

输入文件migong.in共n+1行。

第一行有三个数n,m表示迷宫有n行,m列。

第2行到第n+1行,每行m个字符,可能是’A’…’Z’,’2’,’0’ 其中,2表示障碍,0表示可以走。’A’…’Z’也可以走。

【输出】

输出文件migong.out共1行,就是至少走几步可以按规定走完,如果不行,输出“Impossible”
在这里插入图片描述
宽搜+细节(预处理等)(其实真的就是一道裸宽搜 )

#include<bits/stdc++.h>
#include<queue>
using namespace std;
const int N=105;
struct node{
	int x, y;
};
int dx[4]={0,-1,0,1};
int dy[4]={-1,0,1,0};
int step[N][N], visit[N][N];
node a[30];
char G[N][N];
int n, m, ans;

int bfs(char st, char ed){
	memset(visit, 0, sizeof(visit));
	memset(visit, 0, sizeof(step));
	queue<node> q;
	node tmp; 
	tmp.x= a[st-'A'].x;
	tmp.y= a[st-'A'].y;
	q.push(tmp);
	visit[tmp.x][tmp.y]=1;
	step[tmp.x][tmp.y]=0;
	while(!q.empty()){
		node now= q.front();
		q.pop();
		for(int i=0; i<4; ++i){
			int nx=now.x+dx[i];
			int ny=now.y+dy[i];
			if(nx<1||nx>n||ny<1||ny>m||visit[nx][ny]||G[nx][ny]=='2') continue;
			step[nx][ny]= step[now.x][now.y]+1;
			tmp.x=nx, tmp.y=ny;
			visit[nx][ny]=1;
			q.push(tmp);
			if(nx==a[ed-'A'].x&&ny==a[ed-'A'].y) return step[nx][ny];
		}
	}
	return -1;
}

char maxa;


int main(){
	cin>> n>> m;
	for(int i=1; i<=n; ++i)
	for(int j=1; j<=m; ++j)
	{
		cin>> G[i][j];
		if(G[i][j]>='A'&&G[i][j]<='Z'){
			a[G[i][j]-'A'].x= i; 
			a[G[i][j]-'A'].y= j;
			maxa=max(maxa, G[i][j]);
		} 
	}
	for(char st='A'; st<maxa; st++) 
	{
		int tt=bfs(st, st+1);
		if(tt==-1) {
			cout<<"Impossible";
			return 0;
		}
		ans+=tt;
	}
	ans+=bfs(maxa,'A');
	cout<< ans<< endl;
	return 0;
}

好的就酱
其实我蛮想不用queue而直接用一个数组代替(如果空间允许)(毕竟手打的安心点)(就我这水平就想手打STL了 )

雅礼集训2019 day7 Inverse 1≤n≤500,0≤k≤501 ≤ n ≤ 500,0 ≤ k ≤ 501≤n≤500,0≤k≤50, P是一个1到n的排列. 概率dpdpdp好题。 思路: 定义fi,j,kf_{i,j,k}fi,j,k​表示kkk轮变换之后api&gt;apja_{p_i}&gt;a_{p_j}api​​>apj​​的概率。 然后考虑对当前轮翻转的区间[l,r][l,r... 阅读详情

相关推荐

代码源集训复盘Day7

WA5发原因:一开始题面是整场2024 China Unversity of Geosciences (Wuhan) Freshman Contest的题面,然后里面有道题叫文神的序列,我一直在交那一道。种数都要增加到同一个数,可以一起计算。这种情况的复杂度为调和级数。可以发现,字母是什么不重要,重要的是长度。的倍数看起来就没啥意义,所以考虑输出的数字应该是。可以想到相邻质数间隔较小,直接枚举即可。,那么所有数都增加到同一个数,直接。的倍数,剩下的操作次数还需要被。的约数,那么可以考虑让。

chenweizhen2011的博客 820

【2018寒假集训Day 1】【位运算】生成字符串

生成字符串(strs) 【问题描述】 假设字符串只由字符“0”,“1”,“”组成,其中字符“”表示该字符可由 字符“0”或“1”替代。 现有一些字符串,根据这些字符串生成所有可生成的字符串。如: {10,1,0 }可生成{10,01,11,00 } {101,001,*01}可生成{101,001} 注意后一个例子中“*01”并没有生成新的字符串。 【输入格式】strs.in

WSR的安全屋 1135

从Excel到‘一张图’办案:手把手教你用AbutionGraph构建公安经侦知识图谱(含数据建模避坑指南)

本文详细介绍了如何利用AbutionGraph时序图数仓技术,将公安经侦领域的Excel、银行流水等碎片化数据转化为可交互的知识图谱。通过数据清洗、实体关系模型设计、时序数据处理等步骤,实现高效智能分析,提升办案效率。特别包含数据建模避坑指南和实战案例,助力公安金融案件侦破。

weixin_33702545的博客 342

NOIP模拟 生成字符串

  【问题描述】           我们规定涉及的字符串只由字符"0","1","*"组成,其中字符"*"表示该字符可由字符"0"或"1"替代           现有一些固定长度的字符串,根据这些字符串生成所有可生成的相同长度的不重复的字符串。如:           {10,*1,*0}可生成{10,11,01,00}           {101,001,*01}可生成{

Michael_GLF的博客 414

UltraScale+ FPGA中GTY收发器参考时钟的跨Bank共享机制解析

本文深入解析了UltraScale+ FPGA中GTY收发器参考时钟的跨Bank共享机制,详细介绍了时钟布线架构、SLR区域限制及Vivado工程配置要点。通过实际案例和优化建议,帮助工程师解决高速串行通信中的时钟共享问题,提升系统性能。

weixin_29280219的博客 631

基于PLC的全自动洗衣机控制系统+控制程序

本设计使用PLC控制系统替换了传统的继电器控制系统,实现了全自动洗衣机在硬件方面的提升,丰富了全自动洗衣机在软件方面的功能,提高了全自动洗衣机的洗衣效率,基本可以满足用户的洗衣需求。

zzzz114231的博客 8955

Hidden String 5311 (深搜+字符串)

Hidden String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 1476    Accepted Submission(s): 526 Problem Description     Today is

yanghui07216的博客 621

Python实战:用pdfplumber从PDF中精准提取表格数据(附完整代码)

本文详细介绍了如何使用Python库pdfplumber从PDF中精准提取表格数据,包括环境配置、标准与复杂表格处理策略、数据清洗与验证等实战技巧。通过完整代码示例,帮助数据分析师和财务专业人士实现PDF数据提取的自动化,提升工作效率。

weixin_29061821的博客 400

问题 E: 【字符串】生成字符串

你的忏悔或许会让你心安,但未必别人如此。 题目描述 假设字符串由字符“0”,“1”,“*”组成,其中字符“*”表示该字符可由字符“0”或“l”替代。 现有一些字符串,根据这些字符串生成所有可生成的字符串。如: {10,*1,0*)可生成{10,01,11,00} {101,001,*01)可生成{10l,001) 注意后一个例子中“*01”并没有生成新的字符串。 输入 第1行是两个整...

0k-ok 1083

深度学习驱动材料科学:晶体生成与性质预测技术综述

深度学习作为人工智能的核心技术,通过模拟人脑神经网络处理复杂数据,在多个领域展现出强大的模式识别与生成能力。其原理在于构建多层非线性变换,从海量数据中自动学习特征表示与映射关系。这一技术价值在于能够高效处理高维、非结构化数据,解决传统方法计算成本高、探索空间有限的问题。在工程实践中,深度学习已广泛应用于计算机视觉、自然语言处理等领域,并正深刻变革材料科学的研究范式。具体到材料领域,它通过学习已知材料的构效关系,实现对新材料性能的快速预测与逆向设计。应用场景包括但不限于新能源材料、半导体、催化剂等领域的高通量

weixin_28695161的博客 414

OpenHarmony WebView引擎:从Chromium魔改到分布式渲染的终极解析

ArkWeb框架提供了强大的Web应用开发能力,但同时也需要注意网络安全问题,尤其是跨域请求方面。

m0_67505153的博客 1195

<OJ_Sicily>生成字符串

回溯算法求解生成字符串

Vipin_Pei的博客 1221

YOLO26优化:注意力魔改 | 用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测,暴力涨点

用于微小目标检测的上下文增强和特征细化网络ContextAggregation,助力小目标检测

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 489

【无标题】NOI省选集训

询问次数为2n,考虑On找到一个诚实的人,再用On−1询问其他人。<=NY因为现在保证了诚实的人数量大于不诚实的人的数量,所以考虑用一个队列维护现在询问过的人,用队列中最靠后的去询问未被询问的人。如果输出N,则删除这两个,否则就加入。这样就保证了队列中的诚实的人数量比不诚实的人的数量多,最后队列中一定会剩下一个诚实的人。所以就做完了。

sbasdas的博客 956

ADC实现模数转换Multisim电路仿真——硬件工程师笔记

8位模数转换器(ADC)是将模拟信号转换为8位数字信号的电子器件,具有256级量化能力。其工作原理分为采样、量化和编码三个阶段,关键参数包括分辨率、采样率、精度、线性度和信噪比。常见型号有ADC0804、ADC0808等,广泛应用于数据采集、音频处理、通信系统和消费电子产品中。典型应用时需要配置参考电压、模拟输入和数字输出引脚,并通过仿真实验验证转换效果(如-10V对应输出0,10V对应255)。硬件工程师需掌握其原理和参数选择,相关笔试面试资料可在优快云博客获取。

XU157303764的博客 1508

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

LOJ 6495~6497「雅礼集训 2018 Day1」

. 真是看懂std就秒的三道题,但是看懂就很难啊 (感谢superguymj和memset0两个大佬的代码) 稍微说一下题解 -------------------------------------------------------- 「雅礼集训 2018 Day1」树 这道题的正解被superguymj大佬吊打了,原来O(n⋅2n)O(n·2^n)O(n⋅2n)变成了O(n4)O(n^4)...

扩展の灰(Extended Ash/Cooevjnz) 1562

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

GDOI2021 联合省选及赛前集训 总结

GDOI2021 联合省选及赛前集训 总结 考得不太好,但是T1送了100???CCF用脚造数据 停课训练还是找到了做题的感觉的,也把之前的一部分缺漏的知识点补了(虽然都没用上) Day1 一看题觉得T1可做,想到二分答案然后枚举值域起点,那么就可以在原序列中有一段不翻转,其他都要翻,这个用 前缀/后缀 最小/最大值就可以直接做。感觉上这个做法应该没有什么问题,复杂度 O(nlog⁡n)O(n \log n)O(nlogn)于是就去看后两题了。 T2看到题连暴力都不会写,似乎可以用高斯消元?但是这个的时间复

qq_45202550的博客 243

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

集训队测试总结合集

集训队这两个星期来一些测试的总笔记合集,不含两个 DP 算法专题。

lkb 的小屋 1147

一周编程集训day7:实战DP

一周编程集训day7:实战DP1 任务2 0-1背包问题实现3 leetcode4 参考 1 任务 实战DP:完成0-1背包问题实现(自我实现)及Leetcode上Palindrome Partitioning II(132)。并同时温习前六天内容,做出总结! 2 0-1背包问题实现 该问题已经在一周编程集训day5:递归及DP已经实现。 3 leetcode 1.132. 分割回文串 II ...

qq_30006749的博客 384

2025联合省选游记

感觉这次打得还行,Day2Day\ 2Day2暴力没打满是败笔。感觉T1T1T1不会就开始慌,过了T1T1T1才能进状态的老毛病又犯了,这东西得慢慢改掉。用bitsetbitsetbitset存图都没想到,区间加等差数列写不对,太蠢了,还得练。不管怎样,终究是在一年后迈出了新的一步,前路漫漫,继续努力吧。

mamingzhi_2026的博客 763

集训DAY8之树形 DP与换根DP

树形动态规划(Tree DP)是动态规划在树结构上的具体应用,它充分利用了树的递归特性和层次结构来设计高效的求解策略。作为无环连通图,树的特殊性质为动态规划提供了天然的计算框架。在树形 DP 中,我们通常将问题分解为子树问题:对每个节点计算状态值,然后根据父子关系将这些状态值向上传递。这种自底向上(后序遍历)或自顶向下(前序遍历)的计算方式,与树的遍历顺序完美契合。状态定义通常与子树信息密切相关状态转移依赖于子节点的状态无环特性避免了循环依赖问题计算顺序由树的遍历顺序决定。

Liyankai1523900的博客 845

纪中集训 Day3&Day4

纪中集训 Day3 有点水哦!!开森:) T1: 这是一道常识题啊! 快排+2位小数输出 T2: 一个前缀和搞定 可是为什么我只有50 T3: 本来是用深搜的,可ta不负众望的炸了 后来经kj大佬启发合作,三维的DP竟然过了,哦耶! T4: 一头雾水 蒙点理所当然的0分 T1 sort 题目: 小xxx和小yyy是好朋友。小yyy的成绩很差,以至于 GPAGPAGPA(平均绩点)在系内倒数。系内...

Y的博客 241

2019牛客国庆集训派对day4 H:Highway(树形dp求树上最长路径)

【题意】 给定一棵树,两个结点之间的距离为树上路径的长度,要求构造一棵树上所有边的权值和最大的树并输出权值。 【题解】 我们可以把这个问题转化成,求每个结点的树上最长路径再加入到新构造的树中,注意n个长度求和后要删去最长边,因为最长的路径被重复计数了而我们只需要n-1条边。 那么树上最长路径怎么求呢? 可以看出,离第i个结点最远的距离,是边(v,i)的长度(其中v是i 的父亲)加上第v个...

菜鸡成长史 420

福州市 2025 国庆集训 Day1 前三题题解

集训题解(太菜了只会前三题)

Brilliant_Sky的博客 1062

集训Day2

雅礼集训2017Day2 T1 给你一个水箱,水箱里有n-1个挡板,水遵循物理定律 给你m个条件,表示第i个格子上面y+1高度的地方有或没有水 现在给你无限的水从任意地方往下倒,问最多满足多少条件 n,m 1e5 SOL: 考虑答案的表示方法,肯定是类似于dp["区间1到n"]这种的 “区间1到n”这个东西我们可以状压,就过了20% 另外10%的数据只有“有水”的...

272

集训DAY7之线性dp与前缀优化/stl优化

DP也就是动态规划(Dynamic Programming)是求解决策过程最优化的过程动态规划主要用于求解以时间划分阶段的动态过程的优化问题问题类型典型例子状态维度核心思路单序列优化最长递增子序列、打家劫舍一维依赖前序元素的最优解双序列匹配LCS、编辑距离二维对比两个序列的字符匹配关系区间优化最长回文子序列、矩阵链乘二维按区间长度递增顺序递推路径计数/最值不同路径、最小路径和二维累加或取min/max路径上的状态DP优化策略。

Liyankai1523900的博客 999
上一篇: 省实集训总结 DAY1(离散化+双指针)
C_plus_
博客等级 码龄7年 0粉丝 2原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值