首页 > 其他分享 >2024.1.26 大寄特寄

2024.1.26 大寄特寄

时间:2024-01-26 23:23:47浏览次数:28  
标签:2024.1 26 期望 int 大寄特 最终 vis MAXN 差值

很好的数学专题,让我发疯

A.

居然直接加了个限制,要求是对于连续的子序列,要求相等,关键是一定有解,用到了鸽笼原理

假设对两个数列求前缀和之后,分别是An,Bn

最终要得到 Ai - Aj = Bk - Bl

但是这样肯定是很麻烦的,要枚举,但是如果移项就可以得到一个有相同格式的式子

Ai - B= Aj - Bl 

下标从0开始,对于Aj - Bi中的i,找到一个最小的 j 让差值为非负,那这个差值的范围一定是 [0,n),又下标是从 0 到 n,所以最多 n 种可能的结果,但实际有 n + 1种结果,说明一定有两对下标满足,那么这样就找到最终答案了。

查看代码
#include<bits/stdc++.h>

using namespace std;
const int MAXN = 1e6 + 10;
typedef long long LL;

int n;
LL a[MAXN], b[MAXN];
pair<int, int> vis[MAXN];

void print(int m, int l, int r)
{
	cout<< l - vis[m].first << '\n';
	for(int i = vis[m].first + 1;i <= l;i++) cout << i << " \n"[i==l];
	cout<< r - vis[m].second << '\n';
	for(int i = vis[m].second + 1;i <= r;i++) cout << i << " \n"[i==r];
	return ;
}

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	
	cin >> n;
	for(int i = 1;i <= n;i++) cin>> a[i], a[i] += a[i-1];
	for(int i = 1;i <= n;i++) cin>> b[i], b[i] += b[i-1], vis[i].first = vis[i].second = -1;
	vis[0].first = -1;
	int poi = 0;
	for(int i = 0;i <= n;i++)
	{
		while(b[poi] < a[i]) poi++;
		int m = b[poi] - a[i];
		if(vis[m].first != -1)
		{
			print(m, i, poi);
			return 0;
		}
		vis[m] = {i, poi};
	}
}

 

B

关键词:组合数学,秦九韶

题目链接

题解链接

 

C

题目链接

关键词:高斯消元 组合数学 逆矩阵

一开始以为是通过数学公式,求极限来算,结果是求每个点经过次数的期望,从点的经过期望来求边的经过期望。

相连的两点间期望相互制约,通过这个建立n个n-1元的一次方程,通过高斯消元求解即可。

最后把边的期望排序就能算出结果。

 

L

怎么说呢,虽然猜到了最终肯定是把点的权排序,按个取,但是没想到怎么处理边权

一直在想怎么在点和边上怎么取舍,但实际上,对于两点一边,总共就两种情况。

一种情况是,双方各染色一个点

另一种情况就是,一方染了两个点,得到了边权

那这样最终的结果,要么就是一方得到整条边的权,要么就是双方都得不到

由于最终求得是得分的差值,那么就不关注究竟是谁得到了这条边,只要最终得到的差值对就行了。

如果将边权一分为二,分别加到两个端点上,无疑是符合最终结果的。

这个题和上一次训练的期望比较类似,既然问号有可能是o也可能是x,那连击的长度就有两种可能,一种是原长l,一种是l+1,一半一半的概率,就是l+0.5了

标签:2024.1,26,期望,int,大寄特,最终,vis,MAXN,差值
From: https://www.cnblogs.com/xxx3/p/17990933

相关文章

  • 寒假训练2024/1/26
    2024,1,26今天做石子合并的题比较多贴一个模板 for(intlen=2;len<=n;len++){ for(inti=1,j;(j=i+len-1)<=n;i++){for(intk=i;k<j;k++){if(dp[i][j]>dp[i][k]+dp[k+1][j]+pre[j]-pre[i-1]){......
  • 期末 whk 游记 && 1.26闲话
    喜报:我B20了政治和物理第20题都选了B,然后都错了哈哈。现在rank260,体育rank1能给我救回来吗,但是体育最高跟别人拉开2分的距离啊,有点慌了。好像集训可以带高级手机,但是能不能集训还得看这次whk成绩,恼了。现在还差两科出啊。语文101.5,但是现代文阅读只扣了三分,前面......
  • 闲话1.26
    想回家想睡觉想放假快魔怔了又写一天题了,周日还你妈有模拟赛,我他妈想睡觉啊。隔壁初中都放寒假了,妈的我们啥时候才能放啊,妈的还有两周啊啊啊啊啊啊啊啊我他妈不想接着在学校呆着了我想回家我想睡觉啊啊啊啊啊啊啊中午洗头把保暖和校服袖子全弄湿了......
  • P2602 数字计数 题解
    QuestionP2602数字计数求\([a,b]\)中的所有整数中,每个数出现的次数Solution数位DP板子题定义\(dp[i]\)表示\(i\)位数的每种数字有多少个,我们把\(0\)和\(00\)看成两种不同的数,并且\(00\)中算\(0\)出现过两次显然,\(0\sim9\)在\(i\)位数中出现的次数是一样......
  • 1.26学习进度
    rdd的创建方法   通过并行化集合的方式(本地集合转分布式集合)   读取数据的方式创建8.rdd分区数查看方法   通过个体怒骂partitionsapi查看,返回值int9.transformation和action的区别   转换算子的返回值100%是rdd,而action算子的返回值100%不是rdd   转换算子......
  • esp8266 no matching function for call to 'Ticker::Ticker()'
    这个错误表明在尝试创建一个Ticker对象时,编译器找不到适合当前调用的构造函数。Ticker可能是Arduino框架中的一个类,用于处理定时事件。解决方法:确认你已经包含了正确的头文件。例如,对于ArduinoESP8266核心库,你需要包含Ticker.h#include<Ticker.h> 确认......
  • 1.26
    1update.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>修改出差申请</title><linkrel="stylesheet"href="../Style.css"></head><......
  • 1月26日
    完成spark实验五 查询employee.json文件中的各种数据 去除重复的数据; 去除id age大于30的 按age分组  按name升序排列  取出前三行数据  查询name列并改名为usernane列  age的平均值 age的最小值  剩下两个部分明天再做了一......
  • 20240126打卡——《构建之法》第5~8章
    第五章团队和流程5.2软件团队的模式主治医师模式、明星模式、社区模式、业余剧团模式、秘密团队、特工团队、交响乐团模式、爵士乐模式、功能团队模式、官僚模式5.3开发流程①写了再改模式②瀑布模型(WaterfallModel)是一个项目开发架构,开发过程是通过设计一系列阶段顺序......
  • 2024-01-26 yarn证书源过期 ==》 yarn切换的镜像源为https,实际上该链接的证书已过期,应
    如,我给一个项目用yarn装依赖,这时候报错:yarninstallv1.22.21infoNolockfilefound.[1/4]Resolvingpackages...errorError:certificatehasexpiredatTLSSocket.onConnectSecure(node:_tls_wrap:1539:34)atTLSSocket.emit(node:events:513:28)atTLSSocket._fin......