求dalao
查看原帖
求dalao
1239270
xiao_qiu楼主2024/8/13 17:12

自己手写了一个check函数,但是快读部分使用出错。后来根据dalao的题解AC了,但是求助其他dalao我这个check函数哪里出错了qwq

(后来用了isdigit函数

AC code:

#include<bits/stdc++.h>
#define p 19260817
using namespace std;
int x,y,a,b;
/*bool check(char s)
{
	return (s>='0'&&s<='9');
}*/
inline int read()
{
    int res=0,s=getchar();
    while(!isdigit(s)&&s!=EOF) s=getchar();
    while(isdigit(s))
    {
        res=(res<<3)+(res<<1)+(s-'0');
        res%=p;
        s=getchar();
    }
    return res;
}
void exgcd(int a,int b)
{
	if(!b)
	{
		x=1,y=0;
		return;
	}
	exgcd(b,a%b);
	int tx=x;
	x=y;
	y=tx-a/b*y;
}
int main()
{
	a=read(),b=read();
	if(!b)
	{
		puts("Angry!");
		return 0;
	}
	exgcd(b,p);
	x=(x%p+p)%p;
	printf("%lld",((long long)a*(long long)(x))%p);
	
	return 0;
} 

WA code:

#include<bits/stdc++.h>
#define p 19260817
using namespace std;
int x,y,a,b;
bool check(char s)
{
	return (s>='0'&&s<='9');
}
inline int read()
{
	int res=0;
	char s=getchar();
	while(check(s))
	{
		res=((res<<3)+(res<<1)+(s-'0'))%p;
		s=getchar();	
	} 
	while(!check(s)&&s!=EOF)
	{
		s=getchar();
	}
	return res;
}
void exgcd(int a,int b)
{
	if(!b)
	{
		x=1,y=0;
		return;
	}
	exgcd(b,a%b);
	int tx=x;
	x=y;
	y=tx-a/b*y;
}
int main()
{
	a=read(),b=read();
	if(!b)
	{
		puts("Angry!");
		return 0;
	}
	exgcd(b,p);
	x=(x%p+p)%p;
	printf("%lld",((long long)a*(long long)(x))%p);
	
	return 0;
} 

2024/8/13 17:12
加载中...