关于Vigenere爆0总结

爆0


考试经历如下
首先,我用昨天的不定参数写了一个debug

模板如下

#include<bits/stdc++.h>
using namespace std;
#define print(type,data) #data , type , data
#define CHAR 0
#define INT 1
#define LONG 2
#define LONG_LONG 3
#define FLOAT 4
#define DOUBLE 5
#define STRING 6
//定义类型
/*例子:
#define MYTYPE 7
*/
#pragma message("Define new type of debugable data here")

//添加类&结构体
/*例子:
struct mytype{
	.....
};
*/
#pragma message("Define new class&struct here")

void debugPrint(int line,int dataNum,...){//follow as name-type-pointer
#ifndef ONLINE_JUDGE
	fprintf(stderr,"Debug message on line %d:\n",line);
	va_list dataPtr;
	va_start(dataPtr,dataNum);
#pragma message("Add temps here")
	/*添加临时变量位置(供调用数据)
	例子:
	mytype temp_mytype;
	*/
	while(dataNum--){
		fprintf(stderr,"	\"%s\"",va_arg(dataPtr,const char*));
		switch(va_arg(dataPtr,int)){
			case CHAR:
				fprintf(stderr,"(char)=\'%c\'",va_arg(dataPtr,int));
				break;
			case INT:
				fprintf(stderr,"(int)=%d",va_arg(dataPtr,int));
				break;
			case LONG:
				fprintf(stderr,"(long)=%ld",va_arg(dataPtr,long));
				break;
			case LONG_LONG:
				fprintf(stderr,"(long long)=%lld",va_arg(dataPtr,long long));
				break;
			case FLOAT:
				fprintf(stderr,"(float)=%f",va_arg(dataPtr,double));
				break;
			case DOUBLE:
				fprintf(stderr,"(double)=%lf",va_arg(dataPtr,double));
				break;
			case STRING:
				fprintf(stderr,"(string)=\"%s\"",va_arg(dataPtr,char*));
				break;
#pragma message("Add new type to debug data here")
			/*添加数据类型处理代码
			例子:
			case MYTYPE:
				temp_mytype=va_arg(dataPtr,mytype);
				fprintf(stderr,"(mytype)= ..... ,temp_mytype);
				break;
			*/ 
			default:
				fprintf(stderr,"(UNKNOW)=<WARNING:UNKNOW TYPE OF DATA>");
		}
		fprintf(stderr,"\n");
	}
	fprintf(stderr,"End debug message.\n\n");
#endif
}
//你的代码
#define maxN 10000
void input(){

}

void solve(){

}

int main(){
#ifndef ONLINE_JUDGE
	freopen("filename.txt","r",stdin);//标准输入重定向
	freopen("filename.dbg.txt","w",stderr);//错误输出重定向(用来调试程序)
#endif
	input();
	solve();
	return 0;
}

这个玩意用法如下:

int i=10356;
char c='R';
char str[10]="Unreal Enging 4.22";

如果是这些东西要输出就用这个

debugPrint(__LINE__,3,print(INT,i),print(CHAR,c),print(STRING,str));

不嫌麻烦也可以用这个

debugPrint(__LINE__,3,"i",INT,i,"c",CHAR,c,"str",STRING,str);

显示结果如下(假设调试代码在第83行)

Debug message on line 83:
	"i"(int)=10356
	"c"(char)='R';
	"str"(string)="Unreal Enging 4.22"
End debug message.

然后就用这个写程序
一开始就发现规律:
以a为0计算: 明码+密码再对26取余就得密码
那就好算了
表都不用打
在这里插入图片描述
一开始
样例没过,输入问题
输入一改就过了
我甚至写了一个刷数据的
(代码就是把一个减号该了加号)
然后似乎AC

然后第二题美滋滋
然后
然后
然后GG
GG

在这里插入图片描述
翻车现场
(第一个RE是把ONLINE_JUDGE打成UNLINE_JUDGE导致的)
然后下载样例,
得出一个结论:
两个数据是以回车间隔的,而我是以空格分隔读入的
aaa
然后大改,
结果本地情况:
在这里插入图片描述
OJ:
在这里插入图片描述
俩WA
然后

========[vigenere9.out]=========
Expected						      |	Yours
wiguiynlznsdmjwabkzxlzepyvAZJDVWEWWCDPDNBSJYWLIMYBPDrtuwsskdp
							      <

==============================
========[vigenere8.out]=========
Expected						      |	Yours
vjihrjxlurwleuwvueanvyajglATWDRKGCQPOYQESBYDSLBDCBLHucfhqnsha
							      <

==============================
========[vigenere4.out]=========
Expected						      |	Yours
iohrvzilldmyuatdhluxxpykgmFPTXGJJBKWSYRBFJSVVNWIEKDNrvehhziuq
							      <

==============================
========[vigenere10.out]=========
Expected						      |	Yours
msfxvxrlgfkdfussyiwvnjnldzFJTPGFRSMMQCGABXDXKPBDYEYMdujhmwmym
							      <

==============================
========[vigenere3.out]=========
Expected						      |	Yours
aqroiftkxnkcmcdaurfwjzwoyoPMGDRIVLIAKABYSPDUHXUMWMNKebpgtjgyi
							      <

==============================
========[vigenere2.out]=========
Expected						      |	Yours
hfnosmkstxrpxycwucdhbzhimgEMNRLJRSWQOWXBVTBCGAYGHLFDlmqkiqrvp
							      <

==============================
========[vigenere7.out]=========
Expected						      |	Yours
wpukmrofcnwtkhsbypmxddkkefGHYRWMOTQHEPYVMJUDAROZFFMMghijatyoq
							      <

==============================
========[vigenere1.out]=========
Expected						      |	Yours
abceefgiijkmmnoqqrsuuvwyyzACCDEGGHIKKLMOOPQSSTUWWXYA
							      <

==============================
========[vigenere5.out]=========
Expected						      |	Yours
hbqflnjlsnxoqwwwqfuacyahcmDFLLLFUJPRNPWRBSUAAAUJYEGCelgqhjppp
							      <

==============================

那就是
不够鲁棒
鲁棒后AC
MMP

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值