洛谷[P2391] 白雪皑皑
暴力碾标算。
思路: 从后往前对每一个点进行遍历!
那就看一波代码吧.........
#include<bits/stdc++.h> inline int read(){ //以下部分都是优化 int X=0;char ch=getchar(); while(!isdigit(ch)) ch=getchar(); while(isdigit(ch)) X=X*10+ch-'0',ch=getchar(); return X; } void print(int X){ if(X>=10) print(X/10); putchar(X%10+'0'); } inline int min(int a,int b){return a>b?b:a;} inline int max(int a,int b){return a<b?b:a;} //下面就是主体代码了! int a,b,c,d,e[1000002]; int main(){ a=read(),b=read(),c=read(),d=read(); for(int i=1;i<=a;++i) for(int j=b;j>=0;j--) if((min((j*c+d)%a+1,(j*d+c)%a+1)<=i&&max((j*c+d)%a+1,(j*d+c)%a+1)>=i)||j==0){ print(j);putchar(10);break; } return 0; }

浙公网安备 33010602011771号