来源:珍惜运维 时间:2022-06-17 15:01:13
假如三个宽度为的字符串包涵且仅包涵
中每一数一场,所以那个字符串被称作三个排序。现取值三个有理数
和
,试内部结构三个
的排序
,因此那个排序有
个最大值。对大小不一为
的字符串
的负号
,假如有
因此
,所以
是三个最大值点。 假如难以内部结构出这种的排序,所以输出-1.输出文件格式第二行包涵三个有理数
(
),则表示试验万萨县。后的
,第一行包涵三个用字符合二为一的有理数:
和
,依次则表示字符串的宽度和明确要求的最大值经验值。输出文件格式输出
行。对每三个试验组,假如没具备条件的字符串,所以输出
.不然就输出三个用
个字符合二为一的
个有理数则表示题目明确要求的排序。假如有多种答案,输出任意一组即可。输出样例51 05 26 62 16 1输出样例12 4 1 5 3-1-11 3 6 5 4 2
显然把三个大的数插入到三个小的数之间就能够内部结构三个最大值。假设我们要内部结构个Peak,所以需要的大的数是
个,而需要的小的数是
个。而要恒定的大小不一关系就需要有约束条件:大的数中最小的数大于小的数中最大的数。因此有条件
k+1">,因此有
2k">。这种就搞定了。
intn,k;cin>>n>>k;if(2*k>=n)puts("-1");else{for(inti=1,j=n;i<=k+1&&j>=n-k+1;i++,j--)cout<<i<<" "<<j<<" ";for(inti=k+1;i<n-k+1;i++)cout<<i<<" ";cout<<endl;}
对三个有个非负有理数的字符串:
,假如字符串满足条件:对任意的
,字符串都满足:
所以我们称这是三个好字符串。现取值三个字符串 和它的大小不一
。试找出负号
的所有的排序方式,使得对应的字符串是好字符串。结果是排序方式的数目。数据可能会很大,输出对
取模。输出文件格式第二行包涵三个有理数
,则表示试验万萨县。对每一试验组的第二行,包涵三个有理数
,则表示字符串的大小不一。每一试验组的第二行包涵
个有理数
,则表示字符串每一元素。题目保证对所有的试验组,
的和不超过
.输出文件格式输出
行,第
行输出第
个试验组得到的好字符串的所有排序方式数目对
取模。输出样例431 1 151 2 3 4 550 2 0 3 041 3 5 1输出样例60364
对任意三个字符串:。定义前缀与和后缀与依次为
和
。根据好字符串的定义有:
,即:
。根据与运算的性质有:
,
。连接一下不等式:
。再次根据定义有
。因此有:
,都有:
。因此要构成三个好字符串,必须有
因此对
都要满足上述的等式。因此我们只需要选择字符串中的最小的元素作为首尾(也是说每一与他们做运算的元素得到的一定是最小元素才能构成好字符串)不然就难以构成好字符串。显然的,最小的元素至少要有三个才行。
intn,cnt=0;boolflag=true;cin>>n;vector<int>a(n);for(inti=0;i<n;i++)cin>>a[i];intamin=*min_element(a.begin(),a.end());for(intx:a){if(amin==x)cnt++;if((x&amin)!=amin){printf("0\n");flag=false;break;}}if(!flag)continue;intfact=1;for(inti=1;i<=n-2;i++)fact=(LL)fact*i%mod;intres=(LL)cnt*(cnt-1)%mod;res=(LL)res*fact%mod;printf("%d\n",res);
现取值三个有理数,明确要求对它进行
次操作。对每一场操作,必须把有理数
的每一位上的数字
用十进制下的
来则表示。如:对1912进行一场操作后变为21023。试给出对
操作
次后
的宽度。数据可能很大,需要对
取模。输出文件格式第二行包涵三个有理数
,则表示试验万萨县。对每一试验组,在一行中输出三个有理数
和
。则表示初始
和操作的次数
。输出文件格式对每三个试验组,输出最终数字的宽度对
取模。输出样例51912 15 6999 188 212 100输出样例52642115
一道DP题。考虑对10的次操作。初始化:显然当
,f[i] = 2,即对10的
次操作结果都还是两位数。而
时,
,即:对10操作9次后变为109,是个三位数。所以对后的状态转移方程有:
则表示进行
次以上操作时即重复第一场操作后宽度和初始态宽度。如:
,则表示对10进行10次操作的结果是对10进行一场操作和不操作的宽度和。(因为第九次时变为109,而109可以分为10和9)。因此我们就能先预处理出来对10的
按位分解为
的数字
。后进行三个分类:
最后对每一数字的结果求和取模就行了。
for(inti=0;i<9;i++)f[i]=2;f[9]=3;for(inti=10;i<N;i++)f[i]=(LL)(f[i-9]+f[i-10])%mod;while(m--){intres=0;intn,k;cin>>n>>k;while(n){intt=n%10;if(t+k<10)res=(LL)(res+1)%mod;elseres=(LL)(res+f[t+k-10])%mod;n/=10;}cout<<res<<endl;}
扫码下载小豪工作室APP
看了本文的人还看了