《扎实!》题解
题目背景
最近发生了好多事情。
首先是博 3 了,写了这个水上去的;其次体育中考,谨在此为 dalao lb 上香;
最后 lh 发 EP 了,那天 7:30 来水 q 音发现哎 lh 发歌了,碰巧有 Q 币,就磕了一发。含行,不是很作。
最近在给小学生出题,主要是因为上次随便组的题被抄题解踩爆了,就想出一道毒瘤搞搞小学生。
题目描述
请留意是否下发文件 full.zip,提取码:69gu(这是测试数据)。请备份防止误删。
你应该直接输出给定的答案文件内容。比如这样:
这种行为我们称为“打表”。这样即可通过此题?
输入描述
第一行一个正整数 ,表示测试数据编号。
接下来的输入格式详见数据文件。
输出描述
详见数据文件。
样例输入
1
样例输出
23
529
12167
279841
6436343
148035889
410092388
… //完整版请参考上页图片
数据规模与约定
对于 的数据,有 。
其他数据详见数据文件。
提示
解答此题的步骤如下:
- 打开
full.zip,找到并复制答案文件; - 在源代码中粘贴,加上
printf什么的,使得程序能输出这些内容; - 重复以上操作,直到完成所有测试点的输出。
下面对每个测试数据给出提示。
原谅我的懒惰。 其中,属于同一个子任务的数据点规律一致。
容易看出,前两个点分别是 和 的幂模一个数。至于怎么求模数的话,lz 含没搞很懂,不过《骗分过样例》的题解已经解释的很详细了,读者可以翻资料;
第三个点就是删掉了 和 这两个数,其他一样。
qs 是 Quicksort;
排序,答案矩阵的 就是排序后的 。
好吧这个 part 被 HY 踩掉了,。
出题人想到的傻逼做法是,用一个 char 存连续的 Yes 个数,接着再存 No 的,以此类推。最差情况的长度为 。
HY 的做法是压位。其实我一开始也想到了,但是脑子抽了,最后发现它更优。
最后贴上出题人的丑陋代码。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<queue>
#define reg register
typedef long long ll;
int dt;
int a[100010];
void work1(){
ll a,b,p;
if(dt==1) a=23,b=29,p=998244353;
if(dt==2) a=29,b=1000,p=998244353;
if(dt==3) a=31,b=1002,p=998244355;
ll sum=1;
if(dt==3) sum*=31*31;
for(reg int i=1+((dt==3)?2:0);i<=b;++i){
sum=(sum*a)%p;
printf("%lld\n",sum);
}
}
void work2(){
int n,m;
scanf("%d%d",&n,&m);
for(reg int i=1;i<=n;++i)
scanf("%d",&a[i]);
std::sort(a+1,a+n+1);
if(n>=1000) n=1000;
for(reg int i=1;i<=n;++i){
for(reg int j=1;j<=n;++j)
printf("%d ",a[i]+a[j]);
puts("");
}
}
char c[]="0123456789abcdefghijklmnopqrstuvwxyz";
char cc[]="1112114312412122511125131321411234215211112131111533112225142114111251161231233221224111212315211118211231112241512221231222111111121212323111414113114822322325121113312212111212311231131322162541111111313311232352121221133313373136121112322131113112121121213141111231111113313123211112236732111231111266212471441111211141134211111122625621632212125111121211112351231111321152113112211322151132125312313121221313242324141322112221111212112131127141165213131161411323124112213134324211351111111113145111241111122622313113111511111112123131121321111113631311151312422111232421224312212421113111241223113311131312122712112411212114411322116211312111121622131223524116131583261212211411161253212112212111112111221112213112222412243123112243214112131211212117111132111351111112531114112163211272311111113221113111413411222132231111322311411211211242311314111222121112153134222311116211243121414121111111211211121521131442221511112623211315211111132121644222442363235141221121211163212322113211822111131151224211121111121413111712131341111235331211221311114322611134111113413111113121113133361311111142113212313121322521133326124225231861125312413211121142211122111111212522152411442441831423132112111412514231231112212222111411141213119161131111151111113122121213324111121132132221141314162111133311225111211113331112312221211112123211182232114141344122121131124241252122111123222212123311311112161122122221131141112212122114111141434812121513122411623211141311252113111115361121313341221121221281111121122231132111123231112111314213211122112111265142134111221311115162313213161361111211512312212321121111132314112111411512521562212113113312211111111233321121311511111122323112113112123251341111141241313142121215111111222112411212211211111162131111211633221122331241211123541242713411221222221333111371211122111621214121326534121118411111121141521221122152111111131122412121522221112112112433112411517751311144321214311122312122221225423242342222213151321231124311331123212113411231121315431131131112d111122212122213111116122311121424111231121132111542211123312121126362211224132242132312112314131222121512122111121112311212b23112151123411111216111311211122132112116211132411112133121212411113321211236111112332211115121121113121211411211122326161124121331111261332121651b3223223121211111412124311352141211211422113242133213612121132422223151123115541122111124211712112724311134171116132123111425111242321121131132142211211511151111111311431283411111121233111112141321111121421111142111111";
void work3(){
if(dt==7){
puts("No12345");
puts("No12345");
puts("No12345");
puts("No12345");
puts("Yes12345");
puts("No12345");
puts("Yes12345");
puts("No12345");
puts("No12345");
puts("Yes12345");
}
else{
int now=1,cnt=0;
for(reg int i=0;i<strlen(cc);++i){
for(reg int j=0;j<strlen(c);++j)
if(cc[i]==c[j]){
cnt=j;
break;
}
for(reg int j=1;j<=cnt;++j)
puts(now?"Yes12345":"No12345");
now=!now;
}
}
}
int main(){
freopen("full.in","r",stdin);
freopen("full.out","w",stdout);
scanf("%d",&dt);
if(dt<=3)
work1();
if(dt>=4&&dt<=6) work2();
if(dt>=7) work3();
}
感谢 ZZY dalao 和 linjiayang2016 dalao 的细心验题,贴上 ZZY 的 丑陋 压行代码。
#include<cstdio>
#include<algorithm>
#define L long long
#define mod 998244353
#define I int
using namespace std;
I A[]={0,4,1,1,1,2,1};
char B[]="111121143124121225111251313214112342152111121311115331122251421141112511612312332212241112123152111182112311122415122212312221111111212123231114141131148223223251211133122121112123112311313221625411111113133112323521212211333133731361211123221311131121211212131411112311111133131232111122367321112311112662124714411112111411342111111226256216322121251111212111123512311113211521131122113221511321253123131212213132423241413221122211112121121311271411652131311614113231241122131343242113511111111131451112411111226223131131115111111121231311213211111136313111513124221112324212243122124211131112412231133111313121227121124112121144113221162113121111216221312235241161315832612122114111612532121122121111121112211122131122224122431231122432141121312112121171111321113511111125311141121632112723111111132211131114134112221322311113223114112112112423113141112221211121531342223111162112431214141211111112112111215211314422215111126232113152111111321216442224423632351412211212111632123221132118221111311512242111211111214131117121313411112353312112213111143226111341111134131111131211131333613111111421132123131213225211333261242252318611253124132111211422111221111112125221524114424418314231321121114125142312311122122221114111412131191611311111511111131221212133241111211321322211413141621111333112251112111133311123122212111121232111822321141413441221211311242412521221111232222121233113111121611221222211311411122121221141111414348121215131224116232111413112521131111153611213133412211212212811111211222311321111232311121113142132111221121112651421341112213111151623132131613611112115123122123211211111323141121114115125215622121131133122111111112333211213115111111223231121131121232513411111412413131421212151111112221124112122112111111621311112116332211223312412111235412427134112212222213331113712111221116212141213265341211184111111211415212211221521111111311224121215222211121121124331124115177513111443212143111223121222212254232423422222131513212311243113311232121134112311213154311311311129!41111222121222131111161223111214241112311211321115422111233121211263622112241322421323121123141312221215121221111211123112129!2231121511234111112161113112111221321121162111324111121331212124111133212112361111123322111151211211131212114112111223261611241213311112613321216519!23223223121211111412124311352141211211422113242133213612121132422223151123115541122111124211712112724311134171116132123111425111242321121131132142211211511151111111311431283411111121233111112141321111121421111142111111";
I d[100010],T,n,m,op,i,j;L ans=1;
I main(){freopen("full.in","r",stdin);freopen("full.out","w",stdout);scanf("%d",&T);if(T==1){for(i=1;i<=29;i++){ans=ans*23%mod;printf("%lld\n",ans);}}if(T==2){for(i=1;i<=1000;i++){ans=ans*29%mod;printf("%lld\n",ans);}}if(T==3){for(i=1;i<=1002;i++){ans=ans*31%(mod+2);if(i>=3) printf("%lld\n",ans);}}if(T>=4&&T<=6){scanf("%d %d",&n,&m);for(i=1;i<=n;i++)scanf("%d",&d[i]);sort(d+1,d+n+1);n=min(n,1000);for(i=1;i<=n;i++){for(j=1;j<=n;j++)printf("%d ",d[i]+d[j]);printf("\n");}}if(T==7){op=A[0];for(i=1;i<=6;i++){for(j=1;j<=A[i];j++)printf(op?"Yes12345\n":"No12345\n");op^=1;}}if(T>=8&&T<=10){op=((B[0]-48)^1);for(i=1;i<=2491;i++){if(B[i]=='!') i++; else op^=1;for(j=1;j<=B[i]-48;j++)printf(op?"Yes12345\n":"No12345\n");}}}

浙公网安备 33010602011771号