1 条题解

  • 0
    @ 2025-8-22 14:16:47

    30pt

    #include<bits/stdc++.h>
    using namespace std;
    int r,c,n;
    int main()
    {
    	cin>>r>>c>>n;
    	int ans = r*c-n*13;
    	cout<<ans<<"\n"; 
    	return 0;
    }
    

    60pt

    #include<bits/stdc++.h>
    using namespace std;
    int r,c,n;
    bool flag[1005][1005];
    int main()
    {
    	cin>>r>>c>>n;
    	for(int i=1;i<=r;i++)
    		for(int j=1;j<=c;j++)
    			flag[i][j] = false;
    	for(int i=1;i<=n;i++)
    	{
    		int x,y;
    		cin>>x>>y;
    		flag[x-2][y] = true;
    		flag[x-1][y] = true;
    		flag[x][y] = true;
    		flag[x+1][y] = true;
    		flag[x+2][y] = true;
    		flag[x][y-2] = true;
    		flag[x][y-1] = true;
    		flag[x][y+1] = true;
    		flag[x][y+2] = true;
    		flag[x-1][y-1] = true;
    		flag[x-1][y+1] = true;
    		flag[x+1][y-1] = true;
    		flag[x+1][y+1] = true;
    	}
    	int ans=0;
    	for(int i=1;i<=r;i++)
    		for(int j=1;j<=c;j++)
    		{
    			if(flag[i][j]==false)
    				ans++;
    		} 
    	cout<<ans<<"\n"; 
    	return 0;
    }
    

    100pt

    #include<bits/stdc++.h>
    using namespace std;
    int r,c,n;
    bool flag[1005][1005];
    int main()
    {
    	cin>>r>>c>>n;
    	for(int i=1;i<=r;i++)
    		for(int j=1;j<=c;j++)
    			flag[i][j] = false;
    	for(int i=1;i<=n;i++)
    	{
    		int x,y;
    		cin>>x>>y;
    		if(x-2>=1)
    			flag[x-2][y] = true;
    		flag[x-1][y] = true;
    		flag[x][y] = true;
    		flag[x+1][y] = true;
    		flag[x+2][y] = true;
    		if(y-2>=1)
    			flag[x][y-2] = true;
    		flag[x][y-1] = true;
    		flag[x][y+1] = true;
    		flag[x][y+2] = true;
    		flag[x-1][y-1] = true;
    		flag[x-1][y+1] = true;
    		flag[x+1][y-1] = true;
    		flag[x+1][y+1] = true;
    	}
    	int ans=0;
    	for(int i=1;i<=r;i++)
    		for(int j=1;j<=c;j++)
    		{
    			if(flag[i][j]==false)
    				ans++;
    		} 
    	cout<<ans<<"\n"; 
    	return 0;
    }
    
    #include <bits/stdc++.h>
    using namespace std;
    int r, c;
    int g[1005][1005];
    int n, x, y;
    void f(int x, int y)
    {
        if (x < 1 || x > r || y < 1 || y > c)
            return;
        g[x][y] = 1;
    }
    void fire(int x, int y)
    {
        f(x - 2, y);
        f(x - 1, y - 1), f(x - 1, y), f(x - 1, y + 1);
        f(x, y - 2), f(x, y - 1), f(x, y), f(x, y + 1), f(x, y + 2);
        f(x + 1, y - 1), f(x + 1, y), f(x + 1, y + 1);
        f(x + 2, y);
    }
    int main()
    {
        cin >> r >> c;
        for (int i = 1; i <= r; i++)
            for (int j = 1; j <= c; j++)
                g[i][j] = 0;
        cin >> n;
        for (int i = 1; i <= n; i++)
        {
            cin >> x >> y;
            fire(x, y);
        }
        int ans = 0;
        for (int i = 1; i <= r; i++)
            for (int j = 1; j <= c; j++)
                if (g[i][j] == 0)
                    ans++;
        cout << ans << "\n";
        return 0;
    }
    
    • 1

    信息

    ID
    95
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    24
    已通过
    9
    上传者