1 solutions

  • 0
    @ 2026-1-8 13:10:29

    看大佬们的代码都挺长,发一个短代码。

    首先想一下:

    比如输入车的坐标1,2和3,4,

    第1,3行的格子就被攻击了,第2,4列的格子也被攻击了,把被攻击的

    行和列都挪在左上角,不被攻击的格子变为(n-2)*(n-2)。

    同理,只要统计输入的行不重复的个数h与列不重复的个数l,答案便

    为n的平方(星号打不出来)-(n-h)*(n-l)

    上臃肿代码,连cin都懒得改成快读了,不过还是不会TLE

    #include #include using namespace std; long long n,k,x[1000002]={0},y[1000002]={0},i,h=0,l=0; int main() { cin>>n>>k; for(i=1;i<=k;i++) cin>>x[i]>>y[i]; sort(x+1,x+k+1); sort(y+1,y+k+1); for(i=1;i<=k;i++) { if(x[i]!=x[i+1])h++;//去重 if(y[i]!=y[i+1])l++;//同上 } cout<<nn-(n-h)(n-l); }

    Information

    ID
    7981
    Time
    1000ms
    Memory
    125MiB
    Difficulty
    3
    Tags
    # Submissions
    7
    Accepted
    0
    Uploaded By