windows下对拍

对拍这个神器的玩意儿。。。苟蒻初中的时候就想学不过老是没机会

终于在昨晚(其实是几分钟前)通过百度学会了在Windows下C++对拍!!!

这里以简单的快速幂为例



首先来个暴力幂

#include<cstdio>
#include<iostream>
using namespace std;

long long n,m,k;

int main()
{
	cin >> n >> m >> k;
	long long sum = 1;
	for (int i = 1; i <= k; i++) sum = sum * n % m;
	cout << sum;
	return 0;
}



然后是华丽屌炸天的正解

#include<cstdio>
#include<iostream>
using namespace std;

typedef long long LL;

LL n,m,k;

LL mi(LL x,LL y)
{
	LL ret = 1,now = x;
	for (; y; y >>= 1)
	{
		if (y & 1) ret = ret * now % m;
		now = now * now % m;
	}
	return ret;
}

int main()
{
	cin >> n >> m >> k;
	cout << mi(n,k);
	return 0;
}


随机数生成器。。。

顺便普及下刚学到的知识,Windows下rand()函数的范围是[0,2^16)

所以说有特殊要求得适当调戏下rand()

#include<cstdio>
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;

int main()
{
	srand(time(0));
	long long a,b,c;
	a = (rand() << 16) + rand();
	b = (rand() << 16) + rand();
	c = (rand() << 16) + rand();
	printf("%lld %lld %lld\n",a,b,c);
	return 0;
}


然后就是超级屌的对拍程序!!!!!!!!

然后就是超级屌的对拍程序!!!!!!!!

然后就是超级屌的对拍程序!!!!!!!!

#include<cstdio>
#include<iostream>
#include<cstdlib>
#include<windows.h>
using namespace std;

int main()
{
	int t = 10;
	while (t--)
	{
		system("data > mi.in");
		system("ksm < mi.in > 1.out");
		system("blm < mi.in > 2.out");
		if (system("fc 1.out 2.out")) break;
	}
	system("pause");
	return 0;
}


嗯。。最后每个文件都编译下,新建好需要的.in,.out之类,运行duipai.exe就可以查看结果啦!



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值