这场很玄学
给定n,k,问你可否把n拆成k个不同奇数
显然if((n+k)&1)两者奇偶不同肯定不行
分下类,看看平均数与个数之间应该满足什么关系即可
阅读题,一大堆废话,无非讲的是每个公主各自有选人名单,最前的公主选可行的最前的王子
男女数一样多
现在就问你是否完全般配,若否,你在任意一个公主名单里加个王子,要使得般配数++即可
开个数组存下状态,女生没pick到,就记录下,回头发一个像我这样帅的单身即可
这题很无聊
给定n*m的长方形
给定k个出发点,k个目标点
你每步操作可对所有点上下左右,撞墙不动
问你在2mn步中能否构造路径,使得目标点只少被经过一次
这题蛋疼的很,2mn够大了,都够跑遍棋盘了,主要是特判很害人
不会,慢慢补嘞~
其实这题理解清楚题目意思其实不难
注意它问的是长为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;
}
原文:https://www.cnblogs.com/et3-tsy/p/12577889.html