19/11/08 CSP-S模拟 T1(数论,数学)(乘法逆元)&T2(模拟)

今天的题比之前的简单,但我也只拿了5分,主要是T1乘法求逆不会,数据都没法输。
T2我今天才知道queue可以定义一个数组,这样我就可以省去许多 l l l r r r的指针移动的分析qwq~~。

好了,说正事

T1

一道纯数学的题。
在这里插入图片描述
已知 p 0 = 0 p_0=0 p0=0 p 2 n = 1 p_{2n}=1 p2n=1, p i = a ∗ p i − 1 + b ∗ p i + c ∗ p i + 1 p_i=a*p_{i-1}+b*p_i+c*p_{i+1} pi=api1+bpi+cpi+1
根据上式,我们可以推出 p 2 = ( 1 − b ) ∗ p i + a ∗ p i − 1 c p_2=\frac{(1-b)*p_i+a*p_{i-1}}{c} p2=c(1b)pi+api1
因此 p 2 = ( 1 − b ) ∗ p 1 + a ∗ p 0 c = 1 − b c ∗ p 1 p_2=\frac{(1-b)*p_1+a*p_0}{c}=\frac{1-b}{c}*p_1 p2=c(1b)p1+ap0=c1bp1,
p 3 p_3 p3也等于某个常数乘上 p 1 p_1 p1
不难发现 p 2 n p_{2n} p2n也可以用 p 1 p_1 p1表示,然后倒推出 p n p_n pn,得出答案。

还有一种严谨的数学证明做法见sslz_fsy的博客:https://blog.csdn.net/sslz_fsy/article/details/102979580
在这里插入图片描述
代码如下:

#include<bits/stdc++.h>
using namespace std;
#define ll long long

const int M=1e9+7;
const int N=1e7+5;

int read()
{
	int x=0,f=1;char ch=0;
	while(!isdigit(ch)) {ch=getchar();if(ch=='-') f=-1;}
	while(isdigit(ch)) x=(x+(x<<2)<<1)+(ch^48),ch=getchar();
	return x*f;
}

int add(int a,int b){return a+b>=M?a+b-M:a+b;}
int mul(int a,int b){ll r=1ll*a*b;if(r>=M) r%=M;return r;}
int ksm(int a,int b){int ans=1;for(;b;b>>=1,a=mul(a,a)) if(b&1) ans=mul(ans,a);return ans;}//快速幂
int n,a,b,x,y,z,f[N<<2];

int main()
{
	freopen("experiment.in","r",stdin);
	freopen("experiment.out","w",stdout);
	n=read();a=read();b=read();
	x=mul(add(1,M-a),b);
	y=add(mul(add(a,M-1),add(b,M-1)),mul(a,b));
	z=mul(a,add(1,M-b));
	int vis=ksm(z,M-2);
	f[1]=1;
	for(int i=2,up=n<<1;i<=up;i++)
	{
		f[i]=mul(vis,add(mul(add(1,M-y),f[i-1]),M-mul(x,f[i-2])));
	}
	cout<<mul(ksm(f[n<<1],M-2),f[n]);
	return 0;
}

T2

先上题:
在这里插入图片描述在这里插入图片描述
这道题就是一个大模拟,题意简单明了。
用一个队列数组维护每个玩家的手牌。
用一个数组维护出牌队列,再用一个bool数组记录一个数是否在出牌队列之中。
用数组ans记录出局的玩家出局的局数,并且玩家的人数减一。
当人数减到一时停止循环。
注意多组数据要清零。
还要注意输出时的空格与换行。

上代码:

#include<bits/stdc++.h>
using namespace std;
#define in read()

int in
{
	int i=0;char ch=0;
	while(!isdigit(ch)) ch=getchar();
	while(isdigit(ch)) {i=(i<<3)+(i<<1)+ch-'0';ch=getchar();}
	return i;
}

int n,m,t,s,T,siz,top,a[102][105],ans[105],b[100005],sta[100005],tp[100005];
bool insta[10005];
queue<int>q[105];

void init()
{
	while(top) insta[sta[top]] = 0,top--;siz = 0;//高级的清零方式(memset太慢)
}

int main()
{
	freopen("fishing.in","r",stdin);
	freopen("fishing.out","w",stdout);
	while(scanf("%d%d%d%d%d",&n,&m,&t,&s,&T),n!=-1)
	{
		init();
		for(int i=1;i<=n;i++)
			for(int j=1;j<=t;j++)
				a[i][j]=b[++siz]=in;
		b[++siz]=s;//离散化
		sort(b+1,b+siz+1);
		siz=unique(b+1,b+siz+1)-(b+1);
		for(int i=1;i<=n;i++)
			for(int j=1;j<=t;j++)
			{
				a[i][j]=lower_bound(b+1,b+siz+1,a[i][j])-b;
				q[i].push(a[i][j]);
			}
		s=lower_bound(b+1,b+siz+1,s)-b;
		int N=n;
		for(int i=1;i<=T;i++)
		{
			if(N<=1) break;
			for(int j=1;j<=n;j++)
			{
				if(ans[j]) continue;
				int x=q[j].front();
				q[j].pop();
				if(insta[x])//特判x在sta中的情况
				{
					int res=0;
					while(sta[top]^x) tp[++res]=sta[top],insta[sta[top]]=0,top--;
					tp[++res]=sta[top],insta[sta[top]]=0,top--;
					for(int k=res;k>0;k--) q[j].push(tp[k]);
					q[j].push(x);
				}
				else 
					if(x==s&&top)//特判J
					{
						int res=0;
						while(top) tp[++res]=sta[top],insta[sta[top]]=0,top--;
						for(int k=res;k>0;k--) q[j].push(tp[k]);
						q[j].push(x);
					}
					else sta[++top]=x,insta[sta[top]]=true;
				if(q[j].empty())
				{
					ans[j]=-i;
					N--;
				}
			}
		}
		for(int i=1;i<=n;i++)
		{
			if(ans[i]) cout<<ans[i];
			else cout<<q[i].size();
			if(i^n) cout<<" ";
			else puts(""); 
		}
		for(int i=1;i<=n;i++)
		{
			if(ans[i])
			{
				puts("");
				ans[i]=0;//清零
				continue;
			}
			while(!q[i].empty()) cout<<b[q[i].front()]<<" ",q[i].pop();
			puts("");
		}
	}
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值