首页 > 其他 > 详细

CF Educational 84

时间:2020-03-26 23:40:35      阅读:77      评论:0      收藏:0      [点我收藏+]

CF Educational 84

这场很玄学

A.数学

给定n,k,问你可否把n拆成k个不同奇数

显然if((n+k)&1)两者奇偶不同肯定不行

分下类,看看平均数与个数之间应该满足什么关系即可

B.模拟

阅读题,一大堆废话,无非讲的是每个公主各自有选人名单,最前的公主选可行的最前的王子

男女数一样多

技术分享图片

现在就问你是否完全般配,若否,你在任意一个公主名单里加个王子,要使得般配数++即可

开个数组存下状态,女生没pick到,就记录下,回头发一个像我这样帅的单身即可

C.构造,模拟

这题很无聊

给定n*m的长方形

给定k个出发点,k个目标点

你每步操作可对所有点上下左右,撞墙不动

问你在2mn步中能否构造路径,使得目标点只少被经过一次

这题蛋疼的很,2mn够大了,都够跑遍棋盘了,主要是特判很害人

D.置换群

不会,慢慢补嘞~

E.组合数学##

技术分享图片

其实这题理解清楚题目意思其实不难

注意它问的是长为i的砖数,而不是含有长为i砖的数有多少

这题比较友好的一点就是,它给你补了前导零,使得做题异常方便

我们只需要直接枚举一下i的长,再分类讨论连续块在中间,两侧的情况

值得注意的是要初始化10的n次幂%mod

#include<iostream>
#include<cstring>
using namespace std;
#define INF 1e10+5
#define maxn 200005
#define minn -105
#define ld long double;
#define uint unsigned int;
#define ull unsigned long long;
typedef long long ll;
ll n,p[maxn];
const ll mod=998244353;
int main()
{
	cin.tie(0);
	cout.tie(0);
	ios_base::sync_with_stdio(false);
	cin>>n,p[0]=1;
	for(int i=1;i<=n;i++)
	    p[i]=p[i-1]*10%mod;
    for(int i=1;i<=n;i++)
    {
    	if(i==n)cout<<10;
    	else
    	{
    	    ll mid=n-i-1,lr=2;
    	    mid=p[n-i-1]*mid%mod*9*9%mod;
    	    lr=lr*9%mod*p[n-i]%mod ;
    	    cout<<(mid+lr)%mod<<" ";
	   	}
	}

	return 0;
}

CF Educational 84

原文:https://www.cnblogs.com/et3-tsy/p/12577889.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!