首页 > 其他分享 >2022.11.16 模拟赛总结

2022.11.16 模拟赛总结

时间:2022-11-16 19:47:28浏览次数:71  
标签:std 16 int inv ans fac 2022.11 模拟 mod

2022.11.16 模拟赛总结

\(T1\) 看起来对于我不是很可做,就大概看了一下 \(50\) 的做法,然后光速跳到 \(T2\), \(T2\) 打了个表把规律看出来了,然后又套了个组合意义,大概 \(15min\) 就切了,不过没注意 \(2\) 倍空间,挂了 \(60pts\)。\(T3\),\(T4\)感觉暴力都不可打,就去看的 \(T1\),想了大概一个小时,没思路,就去打的后面的暴力。还是要注意到细节,数组空间要给够,但是不要 \(MLE\),不要压着上线开空间,写代码注意到细节,不要一处改了,另一处不改。

\(T1\)

题目大意:在二维平面上有 \(n\) 个点,每个点的范围开始都是半径为 \(1\) 的圆,并且每秒以 \(1\) 个单位长度的速度增长,给定起始点,终点,问最晚什么时候出发,在到达终点时,不碰到任何一个圆。

我们不难发现因为移动速度和增长速度是一样的,并且只能上下左右移动,那么我们当且仅当在终点时碰到,那么一定就不行,所以只需要找到起点与终点的哈密顿距离然后进行判断即可。

\(T2:40pts\)

贴个链接吧

\(40pts\) 的做法还是很好想的,我们可以 \(O(n^2)\) 的做法求出 \((1,1)\) 到所有点的方案数,对于路径的花费我们打一个表可以不难发现到每个点的花费是固定的。所以不难求出到每个点的所有方案的花费。那么我们如何进行优化呢?我们想到将求方案数降到 \(O(nlogn)\) 或者 \(O(n)\)。我们考虑组合意义,我们到 \((n,m)\) 的步数是固定的,我们考虑第几步在 \(x\) 轴走,就转化成在 \((n + m - 2)\) 个数里选 \((n - 1)\) 个数的组合数。

点击查看代码
#include<bits/stdc++.h>
#define int long long
const int M = 1e6 + 7 , mod = 1e9 + 7;
int fac[M] , inv[M];
inline int Pow(int a , int b) {
	int ans = 1;
	while(b) {
		if(b & 1) ans = ans * a % mod;
		a = a * a % mod;
		b >>= 1;
	}
	return ans ;
}
inline int C(int n , int m) {
	if(n < 0 || m < 0 || n < m) return 0;
	return fac[n] * inv[m] % mod * inv[n - m] % mod;
}
inline void swap(int &a , int &b) {
	int t = a;
	a = b , b = t;
}
signed main () {
//	freopen("count.in","r",stdin);
//	freopen("count.out","w",stdout);
	std::ios::sync_with_stdio(false);
	std::cin.tie(nullptr),std::cout.tie(nullptr);
	fac[0] = inv[0] = 1;
	for(int i = 1; i <= 1e6; ++ i) fac[i] = fac[i - 1] * i % mod;
	for(int i = 1; i <= 1e6; ++ i) inv[i] = Pow(fac[i] , mod - 2);
	int t; std::cin >> t;
	while(t --) {
		int n , m; std::cin >> n >> m;
		if(n > m) swap(n , m);
		int ans = (m - 1 + (n - 1) * m % mod + mod) % mod * C(n + m - 2 , n - 1) % mod;
		std::cout << ans << '\n';
	}
}

\(T3 , T4\) 压根不会,润了……

标签:std,16,int,inv,ans,fac,2022.11,模拟,mod
From: https://www.cnblogs.com/L3067545513/p/16897262.html

相关文章

  • 闲话 22.11.16
    闲话今天给我整了个好活普通三维偏序的\(O(n\logn)\)解法那就要问了,形如\(a_i\lea_j,b_i\leb_j,d_j\lec_i\lec_j\)的加强版三维偏序有没有什么\(o(n\log^2n......
  • 【221116-2】已知三角形ABC中,角B=2α,角C=α,AB=18,AC=30.求三角形ABC的面积?
    2022年11月16日18点39分END......
  • 11.16 NOIP模拟赛
    A.长春花给定一个素数p,对每个0≤x<p,设f(x)表示一个最小的非负整数a,使得存在一个非负整数b,满足(a2+b2)modp=x。现在,你想要求max{f(0),f(1),⋯,f(p−1)}的值。......
  • 13Xposed+模拟器
    如果你对逆向有所涉猎的话,可能听说过Hook,利用Hook技术我们可以在某一逻辑的前后加入自定义的逻辑处理代码,几乎可以实现任意逻辑的修改。在前面的JavaScript逆向实战......
  • 11.16
    今日内容1.TCP协议与UDP协议2.应用层3.socket模块4.socket代码5.半连接池1.TCP协议与UDP协议1.TCP协议(重要)TCP协议被称为可靠协议(数据不容易丢失)三次握手......
  • 11月16日内容总结——OSI传输层之TCP与UDP协议、应用层简介、socket模块介绍及代码优
    目录一、传输层之TCP与UDP协议1.TCP协议(重要)三次握手建链接四次挥手断连接2.UDP协议3.tcp和udp的对比二、应用层简介三、socket模块1、简介2、基于文件类型的套接字家族3......
  • Pig4cloud密码加密-AES加密key为什么是16位?
    AES算法是一种分组密码算法,有三种不同的密钥长度规模,分别是128比特、192比特和256比特。在pig中前端加密后端这里我们说的16位就是16字节,也就是AES中的128比特。为......
  • 数据库的数据类型-2022-11-16
    数据库的数据类型1、数值tinyint十分小的数据1个字节smallint    小     2个字节Mediumint  中     3个字节int      ......
  • 操作数据库-2022-11-16
    1、操作数据库-》2、操作数据库中的表-》3、操作数据库表中的字段MYSQL的关键字不分大小写1、操作数据库(了解)创建数据库,createdatabase[ifnotexist]west02;......
  • 2022-11-16 Acwing每日一题
    本系列所有题目均为Acwing课的内容,发表博客既是为了学习总结,加深自己的印象,同时也是为了以后回过头来看时,不会感叹虚度光阴罢了,因此如果出现错误,欢迎大家能够指出错误,我......