提出 #70600271


ソースコード 拡げる

#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <chrono>
#include <climits>
#include <cmath>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <deque>
#include <exception>
#include <fstream>
#include <functional>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <limits>
#include <list>
#include <map>
#include <memory>
#include <new>
#include <numeric>
#include <queue>
#include <set>
#include <sstream>
#include <stack>
#include <stdexcept>
#include <streambuf>
#include <string>
#include <tuple>
#include <typeinfo>
#include <unordered_map>
#include <unordered_set>
#include <utility>
#include <vector>

using ll = long long;
using ld = long double;
using namespace std;
#define endl "\n";
#define ff first
#define ss second

#define forn(i,n) for(int i=0;i<n;i++)
#define dbgv(v) cout<<#v<<" "<<v<<endl
#define dbga(a,n) forn(i,n-1) {cout<<a[i]<<' ';} cout<<a[n-1]<<'\n';
#define all(v) (v).begin(), (v).end()


const ll N = 1e6 + 5, mod = 1e9 + 7;
ll fact[N], modinv[N];

ll fastpow(ll n, ll m) {
    int ret = 1;
    while (m) {
        if (m & 1)
            (ret *= n) %= mod;
        (n *= n) %= mod;
        m /= 2;
    }
    return ret;
}

void pre() {
    fact[0] = 1;
    for (int i = 1; i < N; i++)
        fact[i] = i * fact[i - 1] % mod;
    modinv[N - 1] = fastpow(fact[N - 1], mod - 2);
    for (int i = N - 2; i >= 0; i--)
        modinv[i] = (i + 1) * modinv[i + 1] % mod;
}

ll ncr(ll n, ll r) {
    return fact[n] * modinv[n - r] % mod * modinv[r] % mod;
}

void dfs(int i,int p, vector<vector<int>>&adj){
	for(auto c:adj[i]){
		dfs(c,i,adj);
	}
}

void solve(){
    int n,m;
    cin>>n>>m;
    vector<string>grid(n);
    forn(i,n){
        cin>>grid[i];
    } 
    // i,j,k,l
    vector<pair<int,int>>pr;
    int tot=0;
    for(int i=0;i<n-(m-1);i++){
        for(int j=0;j<n-(m-1);j++){
            bool s=1;
            for(auto p:pr){
                bool t=1;
                for(int k=i;k<i+m;k++){
                    for(int l=j;l<j+m;l++){
                        if(grid[k][l]!=grid[p.ff+(k-i)][p.ss+(l-j)]){
                            t=0;
                        }
                    }
                }      
                s&=(!t);
                
            }
            tot+=s;
            pr.push_back({i,j});
        }
    }
    cout<<tot<<endl;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);

    int T = 1;
    // cin >> T;
    while(T--){
        solve();
    }
    return 0;
}

提出情報

提出日時
問題 B - Count Subgrid
ユーザ SummitDevil
言語 C++23 (GCC 15.2.0)
得点 250
コード長 2666 Byte
結果 AC
実行時間 1 ms
メモリ 3668 KiB

コンパイルエラー

./Main.cpp: In function 'void dfs(int, int, std::vector<std::vector<int> >&)':
./Main.cpp:79:20: warning: unused parameter 'p' [-Wunused-parameter]
   79 | void dfs(int i,int p, vector<vector<int>>&adj){
      |                ~~~~^

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 250 / 250
結果
AC × 2
AC × 19
セット名 テストケース
Sample sample_01.txt, sample_02.txt
All 1000000007_01.txt, 1000000007_02.txt, 998244353_01.txt, 998244353_02.txt, random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, sample_01.txt, sample_02.txt
ケース名 結果 実行時間 メモリ
1000000007_01.txt AC 1 ms 3604 KiB
1000000007_02.txt AC 1 ms 3636 KiB
998244353_01.txt AC 1 ms 3636 KiB
998244353_02.txt AC 1 ms 3532 KiB
random_01.txt AC 1 ms 3636 KiB
random_02.txt AC 1 ms 3668 KiB
random_03.txt AC 1 ms 3544 KiB
random_04.txt AC 1 ms 3512 KiB
random_05.txt AC 1 ms 3476 KiB
random_06.txt AC 1 ms 3600 KiB
random_07.txt AC 1 ms 3552 KiB
random_08.txt AC 1 ms 3520 KiB
random_09.txt AC 1 ms 3636 KiB
random_10.txt AC 1 ms 3516 KiB
random_11.txt AC 1 ms 3544 KiB
random_12.txt AC 1 ms 3572 KiB
random_13.txt AC 1 ms 3540 KiB
sample_01.txt AC 1 ms 3640 KiB
sample_02.txt AC 1 ms 3636 KiB