Improve performance for closest string 2
This commit is contained in:
parent
8c1aa032d5
commit
f080ecedec
7 changed files with 34 additions and 68934 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -1 +1 @@
|
||||||
csafydvimgvnrhraodeieklynoxgajbjhhsvntdfkvuptfuonsdkyxqculmterhvbwrdytoeggorionubonlkcafauvrfyfinexf
|
csafgdvimgenrhramdeieklynoxgajbjhhsvntdfkvupnjuonsdkylqculmterhvbwrsytosggoxionubonlqcafaujrfyfinexf
|
||||||
|
|
@ -1 +1 @@
|
||||||
csaaydvimgenfhraodeixklynorgajxjhhsvgtdfkvupnjuonsdfylqculmterhqbwsdytoeggorienubombkcafauvrsyfiunxfydutnfhomxvqneunkzpdmurffyqtjyncxkzzklifrpopskobxshsrirnmarylsxffdunbparpzhswqdcbxsjrqwmnnmtwoedfbunwvwikywvpgygashfpvxxldndrbibdoobjceojyhnfmaxxbheyqdddahbdluisejzdturigzhsjwpntxcriqsbbvuqtphjmgmuqqksrclcrmbrlihzpcayatgyhiddwjccnzyibwpigwajqgotdyzjxrjmpqlagfpikakqtiplyasxnglbwieemfvqhjitddujbimxcwykyokxbyfhakpdywutxfrjnyztzeefpazptwbsysfndbzpedbrxfkhrahgxmztnhqcmojshiajwbbegfmpehuawrczvhqrwohigzalcbvyvjkshtgmpmberurbjxzgzysnvqxkknrdryhfnvxlbzntrzmypofoefjowrrrlltgwxvdanbfbyijjzeoxcqbvjlcbdabzwkodtimuapgkgbahmwyglchntycbjttbviiihzfuvjuoohcjpuriotvylnufyziqgyaihlxujdtcyjgrrnmrqhooljsyycrkqexwimkruninplbapzdlpuwtgdvmqcjadhibklmnvcaaeyncbttubnbziblidaspkcvbrzzzpmpvlqixrhzwjfumoeaxrcdpypvcjivzegljbcurkyqdijhubnxvidzhfdzxcbppxuxbjvzcicpordjzcljnijvzjiedngrlrcbgfsjqlztqexmafjhloscgsdkxsejvwnvfzxnfldsurnkstjopgshygxrolcwoxkqlbhrfjmzkzttwhsvbmtrbcdriplrxfncwljctgvmlwhghqpnxyawqgkpzwrjeoxqfiofrmv
|
cusfydvimgenrhraodeixklynoxgajxjhhsvntdfkvupkjuonsdfylqculmterhvlwrdytoeggorionubombkcafauvrsyfiuexfyduwnfhomxvqneunkzpdmurffyrtjyncxkzzklifrpooskobfshsrirnmarylsxfxdunbparpzhmwqdcbxsjrowgnnmtwleddbuhwqwikrwvpgygashfpvexzdndsbibdoobjcexjyhvfnavxahjyqdseqhbdluknejzdwurirzvsjwpntxerjqsbbvustphjmgmutkksrclcldbrlihzpcakktgyzidwwjcqnmyigwpigyqjqjotfyzjxrjgpqhagfpikbkqtiplyfsxnglbwieemfvqhjitddvmbimxywykyokxbyrhakpdywuzxbrfnyztzwefpazptybsysfndbzpederxvxhrahgxmztbhocmolsvvajlbbegempehuiwrozvhqrqogigzalcbvyjqkshtgmpmkerubbjxpazysnvcxkknrdcyhfnvxlbznmrqmypoqoefjowrrrlcxmfxvdanbfbyifaztoxcybvjlprkapzwkomtimuapqxgbahvwygichntycbjtdbvqiigzfuvjuoohckyuriztvylnufyziqgyaihlxfadtcojgqrnmrqhoolrsyycrkqlxwinkrunpnblbanzdlpuwtgdvmfcxadhvbklmnaoausyzcettudnbzibwidaspkivbrzzzpmpqtqixrbzwjfumoexxrcdpypvcdivzegljbcurkysdbjhubncvidzhfdzxcbppeuxbjvzcickordjzctiniuvzaiedngrlzcbgfskqlztyexjafjclbmcgstkrsejvwnvfzxnfldsurnkskjopgiiyfxrxlcwdhkjlbhsxjmtkzttwhsvbmkrdcvriprrxfncllscztvmzwhehqpnhyakqgkpzwrjloxqfiofrmy
|
||||||
|
|
@ -1 +1 @@
|
||||||
mjyhvvxwfnmfqkiehyqoujfpezjtfnusibfwvqqdtywxfgbyrsaevvkteupsjebatbqdjemjoneygrhqswzzijeqdourkpbdhjhkzjvezughojeyktyssyudchhlitpjjvzkqpqlmvwfjspopxgudwwcumsrbfxmoevpplligxwlehgoqbszxrgpjohrurlfxjzuvxmasyzlzdorckgfqgoeanrpavqexopwslgcflgmepmkhzouiajxbcmagptxaytgieqruivqfsbpruugatoexyegbvisemmgjipgaygrcgmligjoksbhamlbvxbjclfwdqkcoeschpeqexnwohcxybiuukoyhewemsjkqcgfcsdjlvzkknbbvlkfxentestcrdresjxuijwlwilsaqynzwseieixrbknoyloivyvccxwplomopgxlbankjsxuqadsxtltkcndielbomecqrffdegahjoassbfakiwmkvzwdwwyaudzrbpsozeawyalmunxnbuyddwztgbknhoseojxhhkmcuwmmgteqbyifksaujqrclzxpmhcjcrskjievbtjjvzpyqoxsaavznbtrnonrgmyqlbpuaehodxatwpyccclemnshpmkcyfysttfzfqgyiaujawjxoioujxthzyaqwewwafbsbjecadkmjqlrrftvpiedngujblwxlfnmdvtqsjnsjhcatruetbywndpccorxulqbnzbhqfknzyxnmmfqueqckflqaputwcthcliwpgygynssylwvqnebvrovsjewsixsyhlpbbxdeomdzljmrbkntreemdwolbpfysselzqbywdhaquimrdoszxxkieybpkoxgyagsgaesmnuimriphupxhetzkthdgcavipapofgyezwbmzucokaeeqqisuzwtskosxmixgscwqnhemwzlgvecabqzcvfvrjmudrlaapxrjandtbniysjxghgheytscdtsqz
|
mjyhvvxwfnmfqkuehyqoujfkezptfnusibfwvqqdtywxfgbyrsaevvkthupsjebahbqdjbmjoneygrhqswzzijeqdourkpbdhjhkzjvezughojeyktyssyudchhlitpjjvzkqqqlmvwfjspopxgudwwcumsrbfxmoevpplligxwlehgoqbszxrgpjohrurlfxjzuvxmasyzlzdfrckgfqgoeanrpabqexopwklgcflgmepmkhzouiajwbcmaggtxaytgilqruivifsbpruugatzexyegbvwsemmgjipgaygrcgmlihjokibyamlbvibkclfwdqgcoeschpeqexnwohclybiuukoyhewemsjkqcgfcsdjlvcksnbbvlkfxfntestcrdresjxuijwlwiluaqynzwseieixrbknoyloivyvccowplomopgxlbankjsxuqaddxtltkcnkiekbomecqrffdegahjoassbfapiwmkvzwdwwyagdzxbprozeewealmunxnbuvddlztgbknhoseojxhhkocowbogteqbyifcssujqrclzxpmhcjcbskjievbtojvppyqkxsaavzdbtrnonrgmyqlbpuaehodxatwpyccclemnshiukcyfysttvzfqgyiaujawnxsioujxthzyaqwewwafbsbjecadkmjqlrrrtvpiedigujbloxlfnmdvtqsjnsjhcajruetbywnxpbcorxulqbnkbhqfknzyxnmmfquecckflqavutwcthcligpgygynssylwvqnebvfovsdewsixsyhltbbxdeomdzljmrgkntreemdwolbpfyoselzqbywdhaqjimrdoszxxkieybpkoxgyagsgaespnuimriphupxhetzkthdecavipapofgyezwbmducokaeeqqisuzwtskosxmixgscwqnhemwzlgvecabqzcvfvrjmudrlaapxrjandtbniysjxghgheytscdtsqz
|
||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -98,16 +98,38 @@ fn solve(input: &[Vec<u8>]) -> String {
|
||||||
|
|
||||||
let mut result = String::new();
|
let mut result = String::new();
|
||||||
|
|
||||||
for (i, col) in columns.iter().enumerate() {
|
let mut hash = HashMap::new();
|
||||||
let t = model
|
|
||||||
.get_obj_attr_batch(attr::X, variables[col].clone())
|
|
||||||
.unwrap();
|
|
||||||
|
|
||||||
let mut p = columns[0..i].iter().filter(|&c| c == col).count();
|
let mut previous = HashMap::new();
|
||||||
|
|
||||||
|
for (i, col) in columns.iter().enumerate() {
|
||||||
|
if !hash.contains_key(col) {
|
||||||
|
let t = model
|
||||||
|
.get_obj_attr_batch(attr::X, variables[col].clone())
|
||||||
|
.unwrap()
|
||||||
|
.into_iter()
|
||||||
|
.map(|v| v as usize)
|
||||||
|
.collect_vec();
|
||||||
|
|
||||||
|
hash.insert(col, t);
|
||||||
|
}
|
||||||
|
|
||||||
|
let t = hash.get(col).unwrap();
|
||||||
|
|
||||||
|
let mut p = match previous.entry(col) {
|
||||||
|
std::collections::hash_map::Entry::Occupied(mut occupied_entry) => {
|
||||||
|
*occupied_entry.get_mut() += 1;
|
||||||
|
*occupied_entry.get()
|
||||||
|
}
|
||||||
|
std::collections::hash_map::Entry::Vacant(vacant_entry) => {
|
||||||
|
vacant_entry.insert(0);
|
||||||
|
0
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
let mut j = 0;
|
let mut j = 0;
|
||||||
while t[j] as usize <= p {
|
while t[j] <= p {
|
||||||
p -= t[j] as usize;
|
p -= t[j];
|
||||||
j += 1;
|
j += 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue