小红背单词【牛客tracker 每日一题】
小红背单词时间限制1秒 空间限制256M知识点小红书 哈希模拟网页链接牛客tracker牛客tracker 每日一题完成每日打卡即可获得牛币。获得相应数量的牛币能在【牛币兑换中心】换取相应奖品助力每日有题做丰盈牛币日益多题目描述小红每天都要背单词然后她会把每天记住了多少单词记录下来并在小红书上打卡。当小红背单词时如果她已经记住了i ii个单词且背了一个没有记住的新单词i 1 i1i1次则她就会记住这个新的单词。例如当她按顺序背[ y o u , t h a n k , t h a n k ] [you,thank,thank][you,thank,thank]时她第一次背单词 y o u youyou时她就能记住 y o u youyou。而由于她已经记住了一个单词所以需要背两次 t h a n k thankthank才能记住 t h a n k thankthank。现在你知道了小红背单词的顺序请你求出小红今天记住了多少个单词。输入描述第一行一个整数n ( 1 ≤ n ≤ 10000 ) n(1≤n≤10000)n(1≤n≤10000)。接下来n nn行每行一个字符串保证每个字符串长度不超过10 1010。输出描述输出一个整数表示她记住了多少个单词。示例1输入5 you thank queue queue thank输出2说明小红先记住了单词 y o u youyou,又因为背了两次 q u e u e queuequeue,于是记住了单词 q u e u e queuequeue。由于已经记住了两个单词所以背两次 t h a n k thankthank还不能让小红记住。解题思路本题核心是哈希表统计规则模拟求解小红记住的单词数量。根据题目规则已记住i个单词时新单词需要背诵i1次才能记住。使用两个哈希表一个统计每个单词的背诵次数另一个标记单词是否已被记住。遍历所有背诵的单词累加对应单词的计数对于未记住的单词判断其背诵次数是否超过当前已记住的单词总数满足条件则标记为记住并将已记单词数加一。全程线性遍历哈希表操作均为O ( 1 ) O(1)O(1)时间复杂度O ( n ) O(n)O(n)完美适配n ≤ 10000 n≤10000n≤10000的数据规模。总结核心逻辑模拟单词记忆规则用哈希表快速统计背诵次数、标记记忆状态。关键操作遍历单词更新计数判断是否满足记忆条件实时更新已记住单词数量。效率保障线性时间复杂度哈希表高效存取逻辑简洁且无冗余计算。代码内容#includebits/stdc.husingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefvectorvectorllvt;typedefpairll,llpll;constll N1e510;constll p1e97;constll INF1e18;constll M2e310;intmain(){ll n;cinn;mapstring,llmp;mapstring,llch;ll ans0;for(ll i1;in;i){string s;cins;mp[s];if(ch[s])continue;if(mp[s]ans){ans;ch[s];}}coutansendl;return0;}
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2510754.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!