ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

打卡信奥刷题(3542)用C++实现信奥题 P11132 【MX-X5-T4】「GFOI Round 1」epitaxy

打卡信奥刷题(3542)用C++实现信奥题 P11132 【MX-X5-T4】「GFOI Round 1」epitaxy P11132 【MX-X5-T4】「GFOI Round 1」epitaxy题目背景原题链接https://oier.team/problems/X5E。epitaxy - かめりあ题目描述给你两个正整数n , m n, mn,m。定义一个1 ∼ n 1 \sim n1∼n的排列p pp的价值为所有的n − m 1 n - m 1n−m1个长度为m mm的连续子串内最大值的最大公因数。规定单个数的最大公因数为其自身。请你求出一个在所有1 ∼ n 1 \sim n1∼n的排列中价值最大的排列如果有多个求出任意一个均可。本题将使用自定义校验器检查你构造的排列是否正确即输出任意一个价值最大的排列都会被认为通过。输入格式本题有多组测试数据。第一行输入一个正整数T TT表示测试数据组数。对于每组测试数据第一行包含两个正整数n , m n, mn,m。输出格式对于每组数据输出一行n nn个正整数表示符合要求的排列p 1 , p 2 , … , p n p_1, p_2, \ldots, p_np1​,p2​,…,pn​。本题将使用自定义校验器检查你构造的排列是否正确即输出任意一个价值最大的排列都会被认为通过。输入输出样例 #1输入 #14 2 2 4 2 7 5 10 3输出 #11 2 1 2 4 3 5 3 6 7 1 2 4 6 3 5 8 1 2 4 10 9 7说明/提示【样例解释】在第一组数据中当n 2 , m 2 n 2, m 2n2,m2时排列p [ 1 , 2 ] p [1, 2]p[1,2]具有最大价值为2 22。并且可以证明当n 2 , m 2 n 2, m 2n2,m2时不存在价值 2 22的排列。在第二组数据中当n 4 , m 2 n 4, m 2n4,m2时排列p [ 1 , 2 , 4 , 3 ] p [1, 2, 4, 3]p[1,2,4,3]具有最大价值为2 22因为所有长度为2 22的子段最大值分别为2 , 4 , 4 2, 4, 42,4,4其最大公因数为2 22并且可以证明当n 4 , m 2 n 4, m 2n4,m2时不存在价值 2 22的排列。【数据范围】本题采用捆绑测试且开启子任务依赖。子任务编号n ≤ n \len≤∑ n ≤ \sum n \le∑n≤特殊性质子任务依赖分值1 118 88100 100100无无28 28282 2210 6 10^610610 6 10^6106A无23 23233 3310 6 10^610610 6 10^6106B无7 774 4410 6 10^610610 6 10^6106无1 , 2 , 3 1, 2, 31,2,342 4242特殊性质 Am 2 m 2m2。特殊性质 Bm n m nmn。对于所有数据满足1 ≤ T ≤ 10 5 1 \le T \le 10^51≤T≤1051 ≤ m ≤ 10 6 1 \le m \le 10^61≤m≤1062 ≤ n , ∑ n ≤ 10 6 2 \le n, \sum n \le 10^62≤n,∑n≤106m ≤ n m \le nm≤n。C实现#includebits/stdc.h#definemems(a,x)memset((a),(x),sizeof(a))usingnamespacestd;typedeflonglongll;typedefdoubledb;typedefunsignedlonglongull;typedeflongdoubleldb;typedefpairll,llpii;voidsolve(){intn,m;scanf(%d%d,n,m);if(m*2n){for(inti1;in;i){intxi;if(im){xn;}elseif(im){--x;}printf(%d%c,x, \n[in]);}}else{while(n%m){--m;}for(inti1;in;i){intti;if(im(i-1)%m0){tm-1;}elseif(im){--t;}printf(%d%c,t, \n[in]);}}}intmain(){intT1;scanf(%d,T);while(T--){solve();}return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容
返回列表