QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#87714 | #3665. Watch Later | rania__ | AC ✓ | 1517ms | 7612kb | C++14 | 1.7kb | 2023-03-14 03:43:07 | 2023-03-14 03:43:12 |
Judging History
answer
#include<bits/stdc++.h>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/assoc_container.hpp>
#define ll long long
#define endl '\n'
using namespace std;
using namespace __gnu_pbds;
template<typename T>
using ordered_set = tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
const int N = 2e5+7, P1 = 31, P2 = 37, mod= 1e9 + 7;
int n,k;
int dp[(1<<20)+5],arr[404];
set<int> st;
string s;
int solve(int mask) {
int tmp = mask, cnt = 0;
while (tmp) {
cnt += (tmp % 2);
tmp /= 2;
}
if (cnt == k)
return 0;
int &ret = dp[mask];
if (~ret)
return ret;
ret = 400;
int lst = -1;
vector<int> ans(k, 0);
for (int i = 0; i < n; ++i) {
if (mask & (1 << arr[i]))
continue;
if (lst != arr[i])
ans[arr[i]]++;
lst = arr[i];
}
for (int i = 0; i < k; ++i) {
if (mask & (1 << i))
continue;
// cout << ans[i] << endl;
ret = min(ret, solve(mask | (1 << i)) + ans[i]);
}
return ret;
}
void doWork() {
cin >> n >> k;
map<char,int> mp;
int cnt =0;
cin >> s;
for (int i = 0; i < n; ++i) {
if ( mp.find(s[i]) == mp.end())
mp[s[i]] = cnt++;
arr[i] = mp[s[i]];
}
memset(dp,-1,sizeof dp);
cout << solve(0) << endl;
}
int main() {
ios::sync_with_stdio(false);
cout.tie(nullptr);
cin.tie(nullptr);
// freopen("bisector.in","r",stdin);
// freopen("bisector.out","w",stdout);
int t = 1;
// cout << primes.size() << endl;
// cin >> t;
while (t--) {
doWork();
}
return 0;
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 5ms
memory: 7428kb
input:
4 2 abba
output:
2
result:
ok single line: '2'
Test #2:
score: 0
Accepted
time: 1ms
memory: 7488kb
input:
4 2 rtrt
output:
3
result:
ok single line: '3'
Test #3:
score: 0
Accepted
time: 2ms
memory: 7444kb
input:
10 3 abcbacabac
output:
6
result:
ok single line: '6'
Test #4:
score: 0
Accepted
time: 0ms
memory: 7488kb
input:
9 3 abcbcacab
output:
6
result:
ok single line: '6'
Test #5:
score: 0
Accepted
time: 4ms
memory: 7544kb
input:
9 3 dbccdbbcd
output:
5
result:
ok single line: '5'
Test #6:
score: 0
Accepted
time: 2ms
memory: 7476kb
input:
10 3 acbcabacab
output:
6
result:
ok single line: '6'
Test #7:
score: 0
Accepted
time: 1501ms
memory: 7504kb
input:
400 20 efgfmadpiijgaamlemgqhdnpihlkagkmjkigtmbhafjnedhebthrmlklmbojbkosqhtrslisecfisltebghpnctnjfdbecanrrtileddokkhoocgkaqnctoogdsrqtafehonofcbktacaaercsslcgaroeatplntboornbgkrnchlrgplrbnjnfjqmtcbekcqtlepcqfiaqqffftkpgsdlhahoddrppibscjhtnfncpglhknnicsqqrkmjnfpomeikpckgqlpidftitjpmjqgeamsgjpfsssqgmpq...
output:
308
result:
ok single line: '308'
Test #8:
score: 0
Accepted
time: 1493ms
memory: 7596kb
input:
400 20 otoatqdklbjrgeogbqknqtdrjimhjnodcgmkbjgobqaiisstokecnqrkrettplnnhfegldifqtabgbfsttahakkflhikrebpqhlnjnnmacnambslrmdkirdhcjfagsomidrhjrejaegketercespnssprcpthqldcpqgcilftparljlngmrdmatoshbfhjjsadebljklfmfjqcqkkltqossooiaqehgtosmqaspdkkhfikdhebmprtjhpqcfmpbdndbmkjgrdforerrannibgacqfkigpmthcdjpi...
output:
312
result:
ok single line: '312'
Test #9:
score: 0
Accepted
time: 1466ms
memory: 7612kb
input:
400 20 grfstbcpbeqqnplbeinsleiffhlmaeqmjfnemclngttnsndfollqrfsjcaajesbjspcegjthpolkiptqhcrposnsdklfsksmarqhdncjdlkhrrjrtipbetaorpmcdgkmfcaqnngjapdjsclbmpjcibqnookfaqicrmgsnnoanspdsmgtarcqoehindmmcehaijjgpbaflbkbkoltpbaqaifhjdtmidtakaqilhbjjnnfqnhhqjcqtiohqagjrhdekesftcetdkgmgklidgoemlmiefrfebfokdcrk...
output:
314
result:
ok single line: '314'
Test #10:
score: 0
Accepted
time: 1453ms
memory: 7484kb
input:
400 20 jbjdcsnehpthnmqtbkjsaspnemkohfkgfskdrqqiapgsijcsdadksplhaelanirjodskjpntlconcjihgjegqelmhralrstfskmrsgpompddeonjqekfchmshclpfhssehfnkrmedfrmncsppaeimtcciggprcqchqdfciggotjbpintihbbtaksnnocsklfbmgiccbgopkpdptaerqtjrhenocaqdprgjgogtqlrdimollehipmsbqabiqjfnibgtjltqfhemmlfjkoslhikjsncefmthcdbhogt...
output:
310
result:
ok single line: '310'
Test #11:
score: 0
Accepted
time: 1493ms
memory: 7596kb
input:
400 20 sbballopdokiilpcolsbkmqogsmsnlpnehlscmbnekseniggjgqqhfnlcngakiptpmflrjrbdihltrktrtbbjeaptkphmasfcficoinrracjfqaalrtochjdaeaejgolqrdlhenaidjekjdooosgsqhgjptdhediondbphrptlcrffmepqbjohgitsptemqrsqcmcgpffshfkqammhrckgibnffisfjkepjrbseetddlhgpfqdchdmtcirhfcbdbhkfjosofmiaknjthborrknlokptlbetqknkqg...
output:
309
result:
ok single line: '309'
Test #12:
score: 0
Accepted
time: 1447ms
memory: 7556kb
input:
400 20 dsfqhngaajtlpdbhfbmfqemchqrbpjokodgjdjtsotgecrenmtcnbjbbpgonbrgjionqltdoshcdsiktbkialkisptktnpkslihfaarskrlnfittbdgaifqjgqraqfaclnofthbsafpadsesmjbcrheonkkfnjogdoieppifdpgksmagpinqjlkprqmhmisfmremefhfshiccmeeqlskmebnjkfdhpgclhdeeltnnalbqshhieeipnkpoimbgejeboahmadqqbtldcnfqfcmkpcrilmistatabjgr...
output:
308
result:
ok single line: '308'
Test #13:
score: 0
Accepted
time: 1517ms
memory: 7480kb
input:
400 20 bdagjhnmhjekhsmacdapjkpirienarbljtnfprnegtsspoipqdanbslepjlqhihsefotgojsqckbmbhmdfgfslrolaldjjhgnmkoomehncriifmgebtpopkqcpddnhtscrjkarnrbftgfctacmbjgtsdigsrinlfagkphgmtfthncgqfnbeeidpqnlssoksocrqnacscklqdmiobrjimhsbhaancnmlfiepaiokdrkaekqfgfstbphdcigktklmcmrqppjsqfolcjcjlnrndntpijjfkdqilqtokb...
output:
313
result:
ok single line: '313'
Test #14:
score: 0
Accepted
time: 1443ms
memory: 7472kb
input:
400 20 ddsjfdtthnqeenlmjdoremmhqplolgrpklnrpjtbqpprlffiqphgkfddigkokaorqnogclgbdpnqsbtngjohhqrndbolktgfapifdtakothcqgmlkboqienisgbcddbkannnamredpcgmopjekkpiisohdrciidcfbmqpbqibfsbrfoskcthjhastepokcrcmhqtarsafbgraaeiseljlhlmgsriqemrdmeosmjnppminglsqckllthjribhfreanfsfsfkqmjbkcbkdtemprpksaligiderjcamt...
output:
308
result:
ok single line: '308'
Test #15:
score: 0
Accepted
time: 1408ms
memory: 7456kb
input:
400 20 slamsdgqsgigjadjdhmpmltpqpppjacjedconpkcskmopkamsfmshkicrefgotmnrhkofnleptkbtdchgdfciancdtfllafihkiqpbkkfgnpaslefmnioegqpmphphojkaciscaebnnaejirkdotbhknqtbmethnrbjmiggqjfopbnomdelpgpjtqdkbrimoglrbmrqdtenitfkhnakohnkhmseccooflrehrlcbsblnqfqftaispdshlqihrfmacgjeojdrbcaibesbopnfstdfeoabktghloqsm...
output:
314
result:
ok single line: '314'
Test #16:
score: 0
Accepted
time: 1506ms
memory: 7496kb
input:
400 20 fllnojkpaneaebnikktlmtdpcntsioegtrndbmqjctorbassdrlcfqrqhiisjndgcqghkffdmrrskgmknsgkotqlbmajpajassjriaojdcphookphkpnghankrsggdcfiapcbkjhmofsofqsoborncdcaiepgsbtoiclaljceiqelbclbqgdelfotkhltsdghtrhctoppeidhhabkrmplpninmisrrqergbkpmrbabokgmgbtpmltetoejkftfrcitfefshmtodpemdfkjfglsperljofegdiqqhj...
output:
308
result:
ok single line: '308'