UOJ Logo

NOI.AC

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#197038#3422. BZeardoe100104ms3664kbC++113.1kb2023-11-05 11:16:382023-11-05 13:02:43

answer

/*
[templates]: 
duipai
spjdp
compre
addhis
floor_sum
treedfs
matrix
network_flow
polynomial
lca
bitset
valuesgt
fenwick
erbitree
*/
//#pragma GCC optimize("Ofast")
//#pragma GCC target("avx")
#include<bits/stdc++.h>
using namespace std;
#define int long long
//use ll instead of int.
#define f(i, a, b) for(int i = (a); i <= (b); i++)
#define cl(i, n) i.clear(),i.resize(n);
#define endl '\n'
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
const int inf = 1e18;
//#define cerr if(false)cerr
//#define freopen if(false)freopen
mt19937 rng(time(0)); 
int rnd(int l, int r) {return rng() % (r-l+1) + l; }
#define watch(x) cerr  << (#x) << ' '<<'i'<<'s'<<' ' << x << endl
void pofe(int number, int bitnum) {
    string s; f(i, 0, bitnum) {s += char(number & 1) + '0'; number >>= 1; } 
    reverse(s.begin(), s.end()); cerr << s << endl; 
    return;
}
template <typename TYP> void cmax(TYP &x, TYP y) {if(x < y) x = y;}
template <typename TYP> void cmin(TYP &x, TYP y) {if(x > y) x = y;}
//调不出来给我对拍!
//use std::array.
int t[26], s[26]; int n; pii res[26]; 
void exgcd(int a, int b, int &x, int &y) {
    if(a == 0) {return x = 0, y = 1, void(); }
    exgcd(b % a, a, y, x); 
    //(b-(b/a)*a)y+ax=1
    x -= (b / a) * y; 
    return; 
} 
pii gettu(int x, int su) {
    //find (unique) u, v such that ux + v(x-1) = su. 
    if(x == 1) return {su, 0};
    int u, v; 
    exgcd(x - 1, x, v, u); 
    
    u *= su; v *= su;
    // cerr << u << " " << v << endl; 
    int at = (int) floor(v * 1.0 / x); 
    // cerr << at << endl; 
    v -= at * x; 
    u += at * (x - 1); 
    // cerr << x << " " << su << " " << u << " " << v << endl; 
    if(u < 0 || v < 0) return {-1, -1}; 
    else return {u, v}; 
}
signed main() {
    ios::sync_with_stdio(0);
    cin.tie(NULL);
    cout.tie(NULL);
    //freopen();
    //freopen();
    //time_t start = clock();
    //think twice,code once.
    //think once,debug forever.
    
    f(i, 0, 25) t[i] = s[i] = 0;
    string u; cin >> u; for(char ch : u) s[ch - 'a'] ++; 
    string v; cin >> v; for(char ch : v) t[ch - 'a'] ++; 
    bool grt = 1; 
    f(i, 0, 25) if(s[i] < t[i]) {
        grt = 0; break;
    }
    if(grt == 0) {
        cout << 0 << endl; 
        return 0; 
    }
    n = v.size(); 
    int ans = 0; 
    for(int x = v.size(); x >= 1; x --) {
        bool ok = 1; 
        f(i, 0, 25) {
            res[i] = gettu(x, t[i]); 
            if(res[i] == pii{-1, -1}) {
                ok = 0; 
                break; 
            }
        }
        if(ok == 1) {
            int tmp = inf; 
            f(i, 0, 25) if(res[i].first + res[i].second != 0) {
                cmin(tmp, (s[i] - t[i]) / (res[i].first + res[i].second)); 
            }
            // cerr << "tmp = " << tmp << endl; 
            cmax(ans, tmp + 1); 
        }
    }
    cout << ans << endl; 
    
    //time_t finish = clock();
    //cout << "time used:" << (finish-start) * 1.0 / CLOCKS_PER_SEC <<"s"<< endl;
    return 0;
}

Details

小提示:点击横条可展开更详细的信息

Subtask #1:

score: 10
Accepted

Test #1:

score: 10
Accepted
time: 0ms
memory: 1248kb

input:

aaaaaaaaaa
aa

output:

9

result:

ok single line: '9'

Test #2:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

bbabbbbbaa
bba

output:

3

result:

ok single line: '3'

Test #3:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

aacccabcbb
babba

output:

1

result:

ok single line: '1'

Test #4:

score: 0
Accepted
time: 0ms
memory: 1248kb

input:

aaaaaaaaa
aaaaaaaaaa

output:

0

result:

ok single line: '0'

Subtask #2:

score: 20
Accepted

Test #5:

score: 20
Accepted
time: 0ms
memory: 1248kb

input:

dacbddccbcddbcbababddbdcdccacbcbdbadadaaadbacbccdcabbacbbaccbadbaacbbccdadabadbaadabbbccbc
addaddddcb

output:

5

result:

ok single line: '5'

Test #6:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

ccbcdeeddbcdcdecbbbddbdadacbddcedaacbacdadaedaaeaebecbcdceeeccedabacbaeceabeedcdddbebceaedadaead
edc...

output:

7

result:

ok single line: '7'

Test #7:

score: 0
Accepted
time: 0ms
memory: 1248kb

input:

cfedcbcccbebeebdababcecdcbbffaacbfefddebbaefdbccbacecbcbfdfaeccbeaebfbedbecdbfdadcdcbbbefceefedbbcfd...

output:

2

result:

ok single line: '2'

Test #8:

score: 0
Accepted
time: 0ms
memory: 1248kb

input:

dahfaccbehadcbdfaeahceaghfaheegcaehbgbeacbhgddabhgahcehdbhdabbcdaedcfgeecggghagabebdgecdccgaacead
bh...

output:

0

result:

ok single line: '0'

Subtask #3:

score: 30
Accepted

Test #9:

score: 30
Accepted
time: 0ms
memory: 1248kb

input:

hedgehecchbeefehhhfgdbbgfffbchabbgghceabbaacafcbfefagefadhcafhfbdbfgaachcfffccbfhcecadfffagcdggacbhg...

output:

31

result:

ok single line: '31'

Test #10:

score: 0
Accepted
time: 0ms
memory: 1248kb

input:

ecibghchgbibddhijdfeiajdgiiijfccdjeehfchgibdadagecbjdajhdaddgbhdgcjcafjeadjbcegcchjfbifhgeicfecgbgdf...

output:

24

result:

ok single line: '24'

Test #11:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

ggabdjpbmdiofcrhqbhdoggiapfjinlakfljphfcjcgrafnmfrhnnmhpbbphjchfdncbmpmhecmhlfhccdfbdlijjokpeeddnebm...

output:

4

result:

ok single line: '4'

Test #12:

score: 0
Accepted
time: 0ms
memory: 1244kb

input:

ucjeamcftpoguuqntgooupahmoiakuqmjveoaiswreedhhuerubsmqnluorobpmivtgantosmpukpwwwepmsoafopjloflrtlwve...

output:

1

result:

ok single line: '1'

Subtask #4:

score: 20
Accepted

Test #13:

score: 20
Accepted
time: 2ms
memory: 2744kb

input:

baaaaaabbaabbbbbbbbbaaaaaabaababaabaaaababaaababbaababbbaabaaababbbbbababbabbabaaaaaaaababbbbbbbabaa...

output:

20781

result:

ok single line: '20781'

Test #14:

score: 0
Accepted
time: 2ms
memory: 2748kb

input:

aaababbaabaabbaaabbabbabbbbabbabbbbaababbbbbbbaabbbbaaaababbbbabbbaaababbabbaaabbaabbbabbabbabaaaaab...

output:

6342

result:

ok single line: '6342'

Test #15:

score: 0
Accepted
time: 17ms
memory: 3140kb

input:

aaaaaabbabaaabbbabbabbaabaaaabaabaabbabababaabbbaaaabaabaaaabaababaabbbaabababbabbbabaaaabaabaaabaaa...

output:

3787

result:

ok single line: '3787'

Test #16:

score: 0
Accepted
time: 33ms
memory: 3664kb

input:

bbabbbbbababbaabaaaaaaabbabbaabbbbbbbaababbbbabaaabbaabbabbabaabbabbaababbabaababbabaabbbbaabaabbbba...

output:

703

result:

ok single line: '703'

Subtask #5:

score: 20
Accepted

Test #17:

score: 20
Accepted
time: 0ms
memory: 2748kb

input:

nvxoxgqfuilsoxqifkupzxfixypciqedniqfolwinknpbvirzumziwgydnpzveforflrvhqawunapsfgehrbshpwnbeflzangvki...

output:

1734

result:

ok single line: '1734'

Test #18:

score: 0
Accepted
time: 2ms
memory: 2748kb

input:

tsprehnxxhfxeiylieexztdrjjeddmbldllwwdidozttnbsxfjatldgwakclhtvqhahelfuilfgbywxophxarvbbnlwurrcbsmjq...

output:

516

result:

ok single line: '516'

Test #19:

score: 0
Accepted
time: 18ms
memory: 3136kb

input:

ofbbhbatrlvkhffgokvyqzjwravodimondolzonigqkfgbvcupixsehvqusgwvwejfjzgkfuqdgbqbkceqccijalndniciodwqfr...

output:

132

result:

ok single line: '132'

Test #20:

score: 0
Accepted
time: 30ms
memory: 3400kb

input:

ytnvgvibokstopejooithobacaxadnuhhoylnrfiqfqmogfacbyzxgzufdiarhzpwjyigeijrotabbzpqvliaxycyucjgleubqea...

output:

47

result:

ok single line: '47'

Extra Test:

score: 0
Extra Test Passed