L1-072 刮刮彩票 (20 分)——wa样例2分析

题目链接

题解

按照题意模拟就行
注意,当k>=4&&k<=6的时候,不能直接求a[1][k]+a[2][k]+a[3][k]
k必须减3
否则wa样例2

AC代码

#include<bits/stdc++.h>
using namespace std;
#define mem(a,b) memset(a,b,sizeof a)
#define PII pair<int,int>
#define ll long long
#define ull unsigned long long
#define IOS ios::sync_with_stdio(0),cin.tie(0)
#define gcd(a,b) __gcd(a,b)
#define ft first
#define sd second
#define endl '\n'
#define PI acos(-1.0)
#define lcm(a,b) a/gcd(a,b)*b
#define INF_INT 0x3f3f3f3f
#define INF_LONG 4557430888798830399
//inline void print(__int128 x)
//{
//	if(x<0) {putchar('-'); x=-x;}
//	if(x>9) print(x/10);
//	putchar(x%10+'0');
//}
//inline int read()
//{
//	int s=0,x=1;
//	char ch=getchar();
//	while(ch<'0'||ch>'9') {if(ch=='-') x=-1; ch=getchar();}
//	while(ch>='0'&&ch<='9'){s=s*10+ch-'0';ch=getchar(); }
//	return s*x;
//} 
const int N = 1e5+9;
int q[N];
int a[N/100][N/100];
void init()
{
	q[6]=10000,q[7]=36,q[8]=720,q[9]=360;
	q[10]=80,q[11]=252,q[12]=108,q[13]=72;
	q[14]=54,q[15]=180,q[16]=72,q[17]=180;
	q[18]=119,q[19]=36,q[20]=306,q[21]=1080;
	q[22]=144,q[23]=1800,q[24]=3600;
}
int main()
{
	 init();
	 int num=(1+9)*9/2,x0,y0;
	 for(int i=1; i<=3; i++)
	 	for(int j=1; j<=3; j++)
	 	{
	 		cin>>a[i][j];
	 		num-=a[i][j];
	 		if(a[i][j]==0) 
	 		{
	 			x0=i,y0=j;
			}
		 }
	a[x0][y0]=num;
	int sum=0;
	for(int i=0; i<3; i++)
	{
		int x,y;
		cin>>x>>y;
		cout<<a[x][y]<<endl;
		//sum+=a[x][y];
	}
	int c;
	cin>>c;
	if(c>=1&&c<=3)
	{
		for(int i=1; i<=3; i++)
		{
			sum+=a[c][i];
		}
	}
	if(c>=4&&c<=6) 
	{
		for(int i=1; i<=3; i++)
		{
			sum+=a[i][c-3];
		}
	}
	if(c==7) sum+=(a[1][1]+a[2][2]+a[3][3]);
	if(c==8) sum+=(a[1][3]+a[2][2]+a[3][1]);
	cout<<q[sum]<<endl;
	return 0;
 } 




posted @ 2022-08-28 08:43  翔村亲亲鸟  阅读(142)  评论(0编辑  收藏  举报