HDU 4455 DP

从ViT到CLIP:OpenAI如何用4亿张图‘教会’AI看懂世界?一次讲透对比学习与Prompt工程 本文深入解析OpenAI的CLIP模型如何通过4亿图文对的对比学习实现跨模态理解,详细探讨了对比学习、数据构建、模型架构及Prompt工程等核心技术。CLIP利用Transformer架构和精心设计的Prompt模板,在Zero-Shot分类、图像检索等场景展现出强大能力,为多模态AI应用开辟新方向。 阅读详情
思路:

已知dp[n],则dp[n+1]等于dp[n]减去最后一组长度为n的不同数的个数,因为这一组不能再加一个数使长度变成n+1

然后对于长度为n的每组加上后一个数,如果这个数在前面长度为n的串中没有出现则dp[n+1]加1

#include<cstdio>
#include<cstring>
typedef long long ll;

const int maxn=1000007;
ll dp[maxn];
int d[maxn]; //第i个数和前面最近相同的数的距离 例如1,2,1    d[3]=2
int r[maxn]; //和前面最近相同的数的距离为i的个数
int tmp[maxn];
int lastp[maxn]; //数i的最近上一个位置
int x[maxn];
int df[maxn]; //从n-i+1到n不同的数的个数

int main()
{
	int n,q;
	while(~scanf("%d",&n),n)
	{
		int i;
		memset(lastp,0,sizeof(lastp));
		for(i=1;i<=n;i++)
		{
			scanf("%d",x+i);
			d[i] = i-lastp[x[i]];
			lastp[x[i]] = i;
		}
		memset(r,0,sizeof(r));
		for(i=1;i<=n;i++)
		{
			r[d[i]]++;
		}
		memset(tmp,0,sizeof(tmp));
		int t=0;
		for(i=n;i>0;i--)
		{
			if(!tmp[x[i]])
			{
				tmp[x[i]]=1;
				t++;
			}
			df[n-i+1]=t;
		}

		dp[1]=n;
		int sum=n;
		for(i=2;i<=n;i++)
		{
			dp[i] = dp[i-1] - df[i-1];
			sum -= r[i-1];
			dp[i] += sum;
		}
		scanf("%d",&q);
		while(q--)
		{
			scanf("%d",&t);
			printf("%I64d\n",dp[t]);
		}
	}
	return 0;
}



【Simulink教程案例7】基于Simulink的滑模控制器设计与实现 欢迎订阅滑膜控制是一种变结构控制策略,其和常规控制方法的主要区别在于控制的不连续性,即一种使系统结构随时间变化的开关特性。所以,滑膜控制器也叫做变结构控制器,其本质是一类特殊的非线性控制器,并且这种非线性为不连续性。滑膜控制器和其他控制方式最大的区别在于其结构的不固定性,在其工作过程中,系统当前的状态会发生变化,使得系统按照预先设置的“滑动模态”的状态轨迹运动。正是由于这个特点,滑膜控制器具有快速响应的优点。滑模控制的基本定义如下所示:1).穿越切换面上的某个点;2).从切换面上的某个点离开; 阅读详情

相关推荐

信息系统项目管理师(高项)重点!

学习高项自己做的笔记

PanJWei的博客 3302

HDU 4455 DP+树状数组

题意给一串数字,里面有N个数字。有Q次查询,每次查询长度为X的串,不相同的数字个数之和。题解很难看出来是DP,不过考虑到查询问题,并且无法用普通的数据结构进行解决,同时长度之间存在利用关系,因此可以用DP解决。 首先对于长度为1的串,很明显可以得到dp[1]=n。对于长度为2的串,我们首先要删除末尾的一个长度为1的串,然后对于每个串再加上一个值,如果新增了一个数字,那么这个值就是1,否则就是0。然

zhenlingcn的博客 879

自然语言处理:稀疏向量表示

稀疏向量表示是指运用特定的方法和技术,将数据(如文本、图像、信号等)转化为向量形式,且该向量具有大部分元素值为零,仅少数元素值非零的特征,以此来实现对数据的高效存储、处理和分析。

老赵爱学习的博客 1444

HDU4455(DP)

这道题思路十分巧妙,我觉得看到10^6次方的数据和查询,一般都会先往线段树方向考虑。我也想了半天,实在思考不出来去看了邝大神的博客才恍然大悟。编程实现不难主要是思路很难想到。时间复杂度为O(n),dp方程:dp[i] = dp[i-1]+A-B (A,B含义见注释)。 代码如下: 1 #include <iostream> 2 #include <cstd...

weixin_33825683的博客 198

EndNote X9 参考文献附录列表 格式调整

EndNote X9 插入参考文献常见问题总结

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 2570

BoT-SORT实战:手把手教你实现BoT-SORT训练和测试

文章目录摘要1、数据准备2、配置BoT-SORT环境2.1、获取代码2.2、创建虚拟环境2.3、安装必要的包2.3.1、安装pytorch2.3.2、安装cython2.3.3、安装Cython-bbox2.3.4、安装faiss2.3.5、安装其他的包3、训练3.1、生成REID数据集3.2、预训练模型3.2.1、ByteTrack预训练模型3.2.2、REID预训练模型3.3、开始训练4、如何更改FASTREID的BackBone?5、测试5.1、测试视频5.2、测试摄像头5.3、多类别测试 摘要 Bo

m0_47867638的博客 2299

HDU 4455 Substrings (DP)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4455 题意:给出长度为n个字符串,然后Q个询问,问长度为k的每个子串中不同的数字个数之和是多少 思路:思路很难想,状态转移:dp[i]=dp[i-1]-A+B,其中A是最后一个长度为i-1的区间的不同数的个数,B是距离上一个与其相等的数为i的数的个数 #include &lt...

Tongqi 613

实战5:农作物产量预测 蔬菜产量预测 lstm 完整代码数据-可直接运行-计算机毕设

实战5:农作物产量预测 蔬菜产量预测 lstm 完整代码数据-可直接运行-计算机毕设

机器学习深度学习业余选手 1259

hdu4455 线性DP

题意:给定10^6的数字序列 然后询问长度

江上白衣凌云 785

LLaMA-Factory微调教程2:命令行sft微调

本文介绍了如何使用llama-factory项目在本地运行Qwen2-7B大语言模型进行对话。首先通过llamafactory-cli env查看环境配置,然后使用git lfs下载Qwen2-7B模型。创建配置文件qwen2_7b_instruct.yaml,修改模型路径和模板参数。最后通过llamafactory-cli chat命令启动对话服务,加载模型配置文件和tokenizer,完成环境初始化后即可进行交互式对话。

Cachel Wood的博客 8815

CAN轴控制流【6041,6040】

【代码】CAN轴控制流【6041,6040】

cfqq1989的博客 1783

hdu4455——dp

题意:询问一个序列所有长度为w的连续子序列中不相同数的个数之和。 思路居然是dp,关键一点是明确每次往序列增加数的时候这个序列的不相同数的个数只会增加或者不变。那我们可以预处理出每个数左边最进且与其相同的数的位置。然后一边递推算出所有的答案。 #include #include #include #define lng long long using namespace std; co

cool_Fires的专栏 884

【100%通过率】2024华为OD机试真题E卷 C++ 实现【栈数据合并/空栈压数】

向一个空栈压入正整数,每当压入一个整数时,执行以下规则(设: 栈顶至栈底整数依次编号为n1、n2...nx, n1为最新压入的整数)

MISAYAONE的博客 1554

hdu 4455 Substrings dp+线段数组

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4455 一,题意: 给定一个序列ai,序列中元素个数为n。再给定一个整数w,w表示的是字串长度。 要求你求出给定序列中所有长度为w的子串中不同元素个数之和。 二,解析: 该题我们主要用:dp+线段树。 1,在这里线段数组主要用于快速求和,使得dp递推效率更高。 2,dp[i]表示区间长度为

漩涡梦幻 623

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

hdu4455 dp

这个题目是2012年的区域赛的题目,是一个典型的dp题目,但是状态定义,即状态转移方程真是不太好想。自己一直在往多维的状态上想,但是都觉得不合理。后来,我也是看了大神的题解才明白的。自己就试着写下自己对这个题目的理解。题目的意思比较好懂:就是给定一个长度为n的序列。然后让你求出它的所有长度为m的连续子序列中,每个序列里不同元素的个数,并将求其和。 题目思路:状态定义为dp[i]表示子序列的长度为

ZT在努力 654

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

hdu4455 dp

http://acm.hdu.edu.cn/showproblem.php?pid=4455 Substrings Time Limit: 10000/5000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2229Accepted Submissi...

weixin_30345577的博客 237

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

HDU - 4455 (DP)

传送门:http://acm.hdu.edu.cn/showproblem.php?pid=4455 XXX has an array of length n. XXX wants to know that, for a given w, what is the sum of the distinct elements’ number in all substrings of lengt

Vision 1308

hdu4455Substrings dp

// dp[i+1] = dp[i] + dis[i] - c[i] ; // dp[i] 表示子串长度为i的不同数的和 //dis[i] 表示所有数在其前面和其相同的点的最短距离大于等于i的和 //c[i] 表示最后一个长度为i的子序列的不同数的和 #include #include #include using namespace std ; const int maxn  =

ijbuhv的专栏 1099

HDU 4455 Substrings dp

给定一个序列,个数为n。再给出一系列w;对于每个w,求序列中,所有长度为w的连续子串中的权值和,子串权值为子串中不同数字的个数。 dp[i]表示w=i时所求的答案。dp[1]=n,这个很容易知道,dp[2]中的子串就是删去dp[1]中最后一个子串,再每个子串加上其之后的那个数,以此类推。 对于dp[i-1]推dp[i],加上的那部分:只有当这个数与它前面同值数最短距离大于等于i时才会加权值,否

Kim0403的博客 696

HDU 4455(dp)

题意:给定一个序列ai,个数为n。再给出一系列w;对于每个w,求序列中,所有长度为w的连续子串中的权值和,子串权值为子串中不同数的个数。 思路:动态规划,用dp[w]表示当前长度为w的时候的权值和。显然dp[1] = n; 如果求dp[2]的话,那么它可以由dp[1]推出来,首先它比dp[1]少了最后一个子序列,那么最后一个子序列的权值用num来表示,num[i]从后面开始数i位的权值...

dizhuo0219的博客 318

HDU 4455 Substrings(DP)

题目链接:点击打开链接 思路: 我们用d[i]表示长度为i的答案。   那么我们可以把样例数据写出来看看是否能够递推。   可以发现, d[i] = d[i-1] - last[i-1] + (n-i+1) - dist[i]。 last[i]表示从后往前i长度时不同数字的个数, 也就是说, d[i-1]的最后一个子序列被扔了, 然后d[i]比d[i-1]还可能多加了( n - i + 1)

AC_Arthur的专栏 749

HDU 4455 Substring(DP)

如样例: 1 1 2 3 4 4 5; 明显dp[1]=n=7; 长度为1的时候有7个区间。 从长度为1到长度为2,就是把前6个区间往后增加一个数,最后一个元素不能构成长度为2的区间。 增加的6个数要看在该区间是否出现过,只要看它上一个相等的元素距离是否大于2 所以dp[2]=dp[1]-1+4;   以此类推就可以得出所以的dp值了。 dp[i]=dp[i-1]-A +B;

swust_lian的博客 472

dp-hdu-4455-Substrings

题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4455 题目意思: 给一个长度为n的数组,有q个询问w,输出区间长度为w的所有子序列中不同数的个数总和。 解题思路: dp+预处理优化,o(n)的时间复杂度才能过。 dp[i]表示子串长度 对于样例 长度为1:1 1 2 3 4 4 5 长度为2:11 12 23 34 44 4

cc_again的专栏 1293

hdu4455之树状数组+DP

Substrings Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1571    Accepted Submission(s): 459 Problem Description XXX has an arra

Stephen 2221

hdu 4455 dp

题目大意:给定一个数组,求长度为x的字串中不同的数字的总数。 发现看别人的思路做的题写完之后等若干天之后还是想不懂怎么写。。。前几天一直在看后缀数组,ac自动机什么问题的,竟然将这题往后缀自动机那里想了。。。。然后发现实在是想不出来怎么写,然后发现了自己以前写的代码,然后就对自己真的无语了,周四就要去成都参加区域赛,这样的状态是真的让人很无语啊。。。 解题思路: 对于长度为i的字串得出的结果

生活总是要微笑着面对~ 770
上一篇: codeforces 2B The least round way
下一篇: HDU 4465
MakingMaker
博客等级 码龄15年 6粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值