首页 > 其他分享 >CSP J 2022 第二轮 VP 划水记

CSP J 2022 第二轮 VP 划水记

时间:2024-04-07 13:11:45浏览次数:26  
标签:10 int ll times VP 2022 CSP dp dis

\(day0\)

处于广州三区,CSP 直接停掉。但是听说后续会有补测,但是无论如何,钩子应该是没有了。

晚上最后复习了快速幂,线段树,树状数组,就去睡觉了。

收到某人的祝福,挺好的(虽然远在我家隔壁一条街?)。

\(day1\)

中午 \(12\) 点开始考试,定个闹钟,到 \(3:30\)。准时结束。

开了第一题。

题意:给出 \(n\),\(k\),求 \(n^k\) 是否大于 \(10^9\) 是则输出 \(-1\),否则则输出 \(n^k\)。

额,居然考了快速幂!刚刚好复习到,模板记得很清楚,打出来了。(虽然也很简单),然后开计算器算了一下 \(sqrt(10^9)\),大于他判一下就可以。

用了不到 \(10min\) 轻松 \(AC\)。

#include<bits/stdc++.h>
using namespace std;
const int N =1e6+10;
#define ll long long
ll ans=1;
void Slove(ll a,ll b)
{
	ll base=a;
	while(b>0)
	{
		if(b&1)
			ans*=base;
		base*=base;
		b>>=1;
		if(ans>1000000000)
			cout<<"-1"<<endl,exit(0);
	}
}
int main()
{
// 	freopen(".in","r",stdin);
// 	freopen(".out","w",stdout);
	ll a,b;
	cin>>a>>b;
	if(a>31622&&b>2)
		cout<<"-1"<<endl,exit(0);
	Slove(a,b);
	cout<<ans<<endl;
	return 0;
}

很快开了第二题。

题意:

求两个正整数 \(p\),\(q\),使 \(n=p\times q\),\((p-1)\times (q-1)=e\times d\)。给出 \(n\),\(d\),\(e\),同时有多测。

通过移项,带入,可以得到:

\[\begin{cases}p\times q=n \\p+q=n+2-e \times d\end{cases} \]

一开始我还想着去枚举因数,但是发现 \(n\) 的值过大,不可做。

正在想期间,我突然回想起我们最近数学学的,完全平方公式。

\((p-q)^2=(p+q)^2-4\times p\times q\)

再连立 \(p+q\) ,\(p-q\) 即可求出 \(p\),\(q\)。

还要考虑当前的数开平方后进行验证,即这个数是不是完全平方,还有除以 \(2\) 的部分也要判一下。因为在这两个操作会有精度损失。

最后还要记得要先输出小的。

#include<bits/stdc++.h>
using namespace std;
const int N =1e6+10;
#define ll long long
int main()
{
// 	freopen(".in","r",stdin);
// 	freopen(".out","w",stdout);
	int t;
	cin>>t;
	while(t--)
	{
		ll n,e,d;
		cin>>n>>d>>e;
		ll m=n-e*d+2;
		ll s=sqrt(m*m-4*n);
		if(s*s!=m*m-4*n){
			cout<<"NO"<<endl;continue;
		}
		ll p=(m+s)>>1;
		if(p*2!=m+s)
		{
			cout<<"NO"<<endl;continue;
		}
		ll q=n/p;
		if(p>q)
			swap(p,q);
		cout<<p<<" "<<q<<endl;
	 } 
	return 0;
}


考试的时候输入顺序写错了,调了 \(10min\) 才发现,我真的会谢。

看到 \(T3\) 题目很长,果断跳开,选择性躲避,开了 \(T4\)。

\(T4\) 一开始没认真读题,理解错题目以为线只可以平行于 \(x\) 或者 \(y\) 轴,对了样例看了一会,才发现他是可以斜着走的。。。

给出 \(n\) 个点坐标,以及可以添加 \(k\) 个点。从中挑选出一些点,加入一些点,是的点两两之间 即 \(x[i+1]-x[i]=1,y[i+1]=y[i]\) 或者 \(y[i+1]-y[i]=1,x[i+1]=x[i]\)。

\(30\) 分的做法显然,就是找个最长不下降子序列且公差为 \(1\) 即可。

正解还是 \(dp\)。

设 \(dp[i][j]\) 表示 第 \(i\) 个点结尾,添加 \(j\) 个点的最大值, \(dis(i,j)\) 表两点距离(也就是两个点之间至少还要添几个点)。

其中 \(l\) 枚举可以添加点的数量。

\[dp[i][l+dis(i,j)-1]=\max(dp[i][l+dis(i,j)-1],dp[j][l]+dis(i,j)) \]

#include<bits/stdc++.h>
using namespace std;
const int N =1e6+10;
int dp[1000][1000];
struct node
{
	int x,y;
}a[N];
int dis(int i,int j)
{
	return abs(a[i].x-a[j].x+a[i].y-a[j].y);
}
bool cmp(node a,node b)
{
	return a.x==b.x?a.y<b.y:a.x<b.x;
}
int main()
{
	int n,k;
	cin>>n>>k;
	for(int i=1;i<=n;i++)
		cin>>a[i].x>>a[i].y;
	for(int i=1;i<=n;i++)
		dp[i][0]=1;
	sort(a+1,a+n+1,cmp);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<i;j++)
		{
			if(a[j].y<=a[i].y)
				for(int l=0;(l+dis(i,j)-1)<=k;l++)
					dp[i][l+dis(i,j)-1]=max(dp[i][l+dis(i,j)-1],dp[j][l]+dis(i,j));
		}
	}
	int maxx=-INT_MAX;
	for(int i=1;i<=n;i++)
		for(int j=0;j<=k;j++)
			maxx=max(maxx,dp[i][j]+k-j);
	cout<<maxx<<endl;
 } 

考试的时候在判最大值的之后写了 \(j=1\) 开始,直接爆掉 \(30\) 分。

笑了,最简单的最长不下降序列的 \(30\) 分我反而没拿到。

考完还去问了学长正解,结果差点尴尬了。

\(T4\) 搞了差不多有 \(1h\) \(30min\),留给我的时间不多了。

看回 \(T3\),是一道大模拟。先看特殊性质的分很好搞(主要是没有优先级),括号的话通过搜索判左右区间即可。

虽然剩下还有时间,但是我还是不想搞了。(这一部分搜索不太熟练。)

最后看到了\(|s|\leq3\) 还有 \(15\) 分钟,因为不用检查文件,我开始了闲情雅致。开始枚举情况,成功的得到了 \(10\) 分。

赛时代码不堪入目,都懂的。

赛后参考了一下题解也打出来了,原来使用栈和 \(vecotr\) 维护。麻了。

结束了。。。等 \(GD\) 自主举行的考试罢。

成绩:\(100+100+60+70=330\)。

晚上和 \(npy\) 聊天,瞬间觉悟:还是 \(npy\) 好。

标签:10,int,ll,times,VP,2022,CSP,dp,dis
From: https://www.cnblogs.com/JuneFailue/p/18118848

相关文章

  • [蓝桥杯 2022 国 B] 齿轮(优化枚举)
        根据题目描述,如果采用dfs暴力做法枚举所有方案,肯定会超时,因此我们需要优化枚举,我们都知道在同一组共同转动的齿轮中,线速度相等,因此角速度的比值就是半径的反比,因此我们只需要找到对于每个齿轮作为起始齿轮,只需要找到其倍数半径是否存在即可,而倍数上限就是假设存在......
  • [蓝桥杯 2022 省 B] 李白打酒加强版(三维动态规划)
        通过题目描述,我们可以知道这道题目涉及到某种状态时候的方案数,因此我们可以用动态规划来解决问题,并且我们需要注意到酒的状态,因此我们可以用三维数组来存储状态,我们知道N,M最大不会超过100,并且如果酒超过了100斗,即使遇到100朵花也无法喝完,因此只需要定义大小都为1......
  • 第33次CSP认证500分题解
    近年来最简单的一次\(CSP\)认证,\(3\)个小时现场满分直接拿下。1、没啥好说的,直接开桶拿下。#include<bits/stdc++.h>usingnamespacestd;#defineN1000010template<classT>inlineTread(T&a){Tx=0,s=1;charc=getchar();while(!isdigi......
  • csp-j游记
    我参加了[2023]csp-j,在10月20日我校准备了大巴车,在5点.pm住酒店,老师定的蓝海酒店使我震惊不已。吃完饭老师叮嘱了我们几句,然后呵呵去找隔壁的隔壁请教了一下晚上有个大聪明打电话学夹子音来骚扰我们第二天早上我们上战场TMD找规律找了2个小时,打代码加修改代码花了1个小时也没......
  • 没有公网 IP 如何部署哪吒探针(适用于家里云 Nas、Nat VPS、IPv6 Only VPS)
    本文首发于只抄博客,欢迎点击原文链接了解更多内容。前言哪吒探针可以帮助我们监控多台服务器的实时状态,通常情况下,安装面板的机器需要拥有公网IP,才能接受Agent的数据,但我们可以通过CloudflareTunnels来实现无公网IP部署哪吒探针本文假设你已经按照官方文档安......
  • CCF-CSP认证202403个人总结以及部分代码
    第一次参加,总分340,这个成绩个人觉得比较满意了,毕竟考前一直在划水,也很久没写算法题了。写到第四题,觉得还剩一个小时肯定写不完就又开始划水,暴力模拟完了就开始翻网页抄自己的提交记录,无所事事,想提前交卷。考试结束在网上一搜,第四题好像不是很难,瞬间觉得没写到最后亏了,开始后悔。......
  • 基于SVPWM控制策略实现三相两电平的逆变器Simulink仿真
    本设计使用simulink实现三相两电平逆变器的SVPWM控制策略,其运行完美,FFT分析时拥有较小的谐波:基波537.7,THD仅为0.35%。获取链接:基于SVPWM控制策略实现三相两电平的逆变器Simulink仿真......
  • FFmpeg开发笔记(十二)Linux环境给FFmpeg集成libopus和libvpx
    ​MP4是最常见的视频封装格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“1.2.3 自行编译与安装FFmpeg”介绍了如何给FFmpeg集成x264和x265两个库,从而支持H.264和H.265两种标准的编解码。视频的封装格式除了古老的MP4和ASF之外,还有较新的WebM格式,该格式的音频编码主要采......
  • [蓝桥杯 2022 国 A] 环境治理(二分 + 弗洛伊德)
        通过题目描述,我们得知如果枚举所有的天数,就不会通过所有的样例,因此我们可以通过二分来列举符合要求的天数,并且我们知道两个城市之间衡量的灰尘度标准就是灰尘度总和最小的那一段路径,也就是说我们需要寻找到权值和最低的那条路径,而我们知道每两个点之间都有路径......
  • 【题单】 往届 CSP/s 题目(洛谷)
    这里写目录标题updata20232022202120202019updata2023P9752[CSP-S2023]密码锁P9753[CSP-S2023]消消乐P9754[CSP-S2023]结构体P9755[CSP-S2023]种树2022P8817[CSP-S2022]假期计划P8818[CSP-S2022]策略游戏P8819[CSP-S2022]星战P8820[......