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 hash = HashMap::new();
|
||||
|
||||
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();
|
||||
.unwrap()
|
||||
.into_iter()
|
||||
.map(|v| v as usize)
|
||||
.collect_vec();
|
||||
|
||||
let mut p = columns[0..i].iter().filter(|&c| c == col).count();
|
||||
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;
|
||||
while t[j] as usize <= p {
|
||||
p -= t[j] as usize;
|
||||
while t[j] <= p {
|
||||
p -= t[j];
|
||||
j += 1;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue