首页 > 其他分享 >bupt ai院第一次周赛题解

bupt ai院第一次周赛题解

时间:2023-11-15 18:12:17浏览次数:29  
标签:周赛 typedef ai 题解 ll long int ans define

题目一

简单模拟题

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define ebk emplace_back 
#define x first
#define y second
typedef pair<int,int> PII;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<string> VS;
typedef vector<int> VI;
void solve()
{
	int n;
	cin>>n;
	vector<int> a(n+2);
	for(int i=0;i<=n;++i) cin>>a[i];
	for(int i=2;i<=n;++i)
	{
		cout<<(ll)a[i]*i*(i-1)<<' ';
	}
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int T=1;
	//cin>>T;
	while(T--)
	{
		solve();
	}
}

题目二

滑动窗口扫描一遍即可

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define ebk emplace_back 
#define x first
#define y second
typedef pair<int,int> PII;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<string> VS;
typedef vector<int> VI;
void solve()
{
	int n,m;
	cin>>n>>m;
	for(int i=0;i<m;++i)
	{
	string s;
	cin>>s;
	int len=s.size();
	int maxn=0;
	int l=0,r=0;
	while(r<len)
	{
		if(s[r]=='1') r++;
		else 
		{
			r++;
			l=r;
		}
		maxn=max(r-l,maxn);
	}
	//cout<<maxn<<'\n';
	cout<<(maxn>=n?"Yes":"No")<<'\n';
	}
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int T=1;
	//cin>>T;
	while(T--)
	{
		solve();
	}
}

题目三

首先特判筛掉不可能归0的情况,然后类似卡特兰数的方法图解,即用点(0,x)点走到(k,0)的方案数减去走到(k,-2)的方案数,组合数计算即可

点击查看代码
#include<bits/stdc++.h>
using namespace std;
#define ebk emplace_back 
#define x first
#define y second
typedef pair<int,int> PII;
typedef long long ll;
typedef unsigned long long ull;
typedef vector<string> VS;
typedef vector<int> VI;
const int p=998244353;
int quick_pow(ll a,int b) 
{
    ll ans=1;
    for(;b;b>>=1)
    {
     if(b&1) ans=ans*a%p;
     a=a*a%p;
    }
    return ans;
}
int inv(int x) 
{
    return quick_pow(x,p-2);
}
ll f(int a,int b)
{
	ll res=1;
	if(b==0) return 1;
	for(int i=a;i>=a-b+1;--i) res=res*i%p;
	for(int i=b;i;--i) res=res*inv(i)%p;

	return res;
}
void solve()
{
	int x,k;
	
	cin>>x>>k;
	//假设有t次自减小
	if(x>k||((x+k)&1)) cout<<'0'<<'\n';
	else 
	{
		int t=(x+k)>>1;

		cout<<(f(k,t)-f(k,t+1)+p)%p<<'\n';
	}
}
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(0);
	int T=1;
	//cin>>T;
	while(T--)
	{
		solve();
	}
}

题目四

先特判,然后利用生成函数推导出\(x^n\)的系数,因为多次求组合,故进行了一次预处理

点击查看代码
#include<bits/stdc++.h>
using namespace std;
const int N=2e6+10;
const int p=998244353;
typedef long long ll;
ll fact[N],infact[N];
ll f(int a,int b)
{
	return fact[a]*infact[b]%p*infact[a-b]%p;
}
int quick_pow(ll a,int b) 
{
    ll ans=1;
    for(;b;b>>=1)
    {
     if(b&1) ans=ans*a%p;
     a=a*a%p;
    }
    return ans;
}
int inv(int x) 
{
    return quick_pow(x,p-2);
}
int main()
{
    int n,k,t;
    cin>>n>>k>>t;
    if((long long)k*t<n) {cout<<'0'<<'\n';return 0;}
    
    fact[0]=1,infact[0]=1;
    
    for(int i=1;i<N;++i)
    {
        fact[i]=fact[i-1]*i%p;
        infact[i]=infact[i-1]*inv(i)%p;
    }
    ll ans=0;   
    for(int i=0;i<=min(k,n/(t+1));++i)
    {
    	if(i&1)
    	ans+=(-f(k,i)*f(k+n-(t+1)*i-1,n-(t+1)*i)%p),ans%=p;
    	else 
    	ans+=f(k,i)*f(k+n-(t+1)*i-1,n-(t+1)*i)%p,ans%=p;
    }
    printf("%lld\n",(ans+p)%p);
    return 0;
}

标签:周赛,typedef,ai,题解,ll,long,int,ans,define
From: https://www.cnblogs.com/ruoye123456/p/17834445.html

相关文章

  • subject organization is not system:nodes 问题解决
    在下面的issues找到了答案:https://github.com/kubernetes/kubernetes/issues/99504┌──[[email protected]]-[~]└─$kubectlgetcsrNAMEAGESIGNERNAMEREQUESTORREQU......
  • AI智能网关在工业物联网领域有哪些应用优势
    随着工业物联网规模的持续扩大,对设备的监测和控制需求的增加,传统工业网关越来越难以满足工业物联网的发展步伐。 针对规模庞大、设备复杂、自动化智能化水平要求高的工业物联网应用,AI智能网关依托强劲处理器性能和内置多场景应用AI算法,助力工业物联网迈入智能化新高度。本篇就......
  • 四名在读研究生,用昇腾AI探索软件定义的未来制造
    过去几年中,“柔性化”这个词经常被各大主机厂商挂在嘴边。简单地说就是千人千面的柔性生产,越来越多的工厂开始实行订单制生产模式,每一台车都能根据客户的需求个性化定制,同一条产线可以实现SUV、MPV、轿车等不同车型的混合生产。只是在柔性生产的大背景下,制造环节还有一些待解的老问......
  • 一个Git clone仓库的指定目录命令对比国内外常见AI(一)使用ChatGPT3.5
    通常情况下,我们会克隆整个Git仓库,但有时候我们只需要其中某一个目录或文件,这时候只克隆子目录会更加方便。这个需求好像不是经常用到,搜索结果也是五花八门,有些完全达不到要求,正好用这个机会测试一下最近大火的AI看看是否足够智能。国外ChatGPT3.5(找一个可以访问的就好,ChatGPT4没找......
  • 【解决方案】危化品厂区安防系统EasyCVR+AI智能监控
    危化品属于危险、易燃易爆、易中毒行类,一旦在生产运输过程中发生泄漏后果不堪想象,所以危化品的生产储存更需要严密、精细的监控,来保障危化品的安全。EasyCVR+TSINGSEE青犀AI智能分析网关搭建的危化品智能监控方案就能很好的为危化品监管保驾护航。EasyCVR+TSINGSEE智能分析网关......
  • 【课程】算法设计与分析——第八周 题解笔记
    第八周算法题解笔记1极值点题目描述给定一个单峰函数f(x)和它的定义域,求它的极值点该单峰函数f(x)保证定义域内有且只有一个极值点,且为极大值点题解本题感觉和dp关系不大,主要思路是三分法,和二分法非常类似,但没有二分法常用,主要用途是用来求单峰函数的极值对于任意一个......
  • JS中的作用域Scope、范围链Scope Chain以及范围链和调用栈的区别
    作用域Scope范围链ScopeChain 范围链和调用栈的区别关键点:范围链与调用顺序无关始终从定义分析:只含本范围与父范围所能访问的变量 ......
  • Python3 协程 await async 相关的用法和笔记
    想要提供可以进行协程切换的awaitable,可以使用下面的方法:1任务taskasyncdeffunc():print("yesWait")task=asyncio.create_task(func())awaittask2协程对象,可以使asyncdef定义的协程函数(是否能触发切换不一定,要看函数内容)函数内可以利用asyncio.sl......
  • 安装open5GS时出现报错Meson test fails for 9 cases
    错误产生场景 执行下面代码时产生错误,有9个test都失败了$./build/tests/attach/attach##EPCOnly$./build/tests/registration/registration##5GCoreOnly产生原因未安装MongoDB或者未运行MongoDB,或者未运行tun设备解决办法安装open5GS前要先安装MongoDB,并且运......
  • mkfs.xfs报错 mkfs.xfs: /dev/new/new_box appears to contain an existing fil
    在设置逻辑卷文件类型时候报错mkfs.xfs:/dev/new/new_boxappearstocontainanexistingfilesystem(ext4).mkfs.xfs:Usethe-foptiontoforceoverwrite.上面是说目标分区,已经存在一个文件系统但是我们有很需要他更改文件系统的话就加一个-f选项[root@server~]......