7-14 瀛楃涓插叧閿瓧鐨勬暎鍒楁槧灏?锛?5 鍒嗭級

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7-14 瀛楃涓插叧閿瓧鐨勬暎鍒楁槧灏?锛?5 鍒嗭級相关的知识,希望对你有一定的参考价值。

鏍囩锛?a href='http://www.mamicode.com/so/1/return' title='return'>return   strong   code   closed   ems   base64   false   define   cst   

鎶€鏈垎浜浘鐗? class=鎶€鏈垎浜浘鐗? class=?

 

闄ょ暀浣欐暟娉曡璁″搱甯岃〃 锛?/p>

鐢辫寮忓瓙寰楀埌value鍦ㄥ搱甯岃〃涓殑瀛樺偍浣嶇疆锛歩ndex = value % p锛涜繖閲屼负浜嗗敖閲忕殑鍑忓皯鍐茬獊锛岃€屼笖璁﹙alue鍦ㄥ搱甯岃〃涓敖鍙兘鐨勫潎鍖€鍒嗗竷锛宲鐨勯€夋嫨灏辫嚦鍏抽噸瑕佷簡銆傝€屽悎鐞嗛€夋嫨p鐨勭粡楠屾槸锛氳嫢鏁e垪琛ㄨ〃闀夸负m锛岄€氬父p涓哄皬浜庢垨绛変簬琛ㄩ暱锛堟渶濂芥帴杩憁)鐨勬渶灏忚川鏁版垨涓嶅寘鍚皬浜?0璐ㄥ洜瀛愮殑鍚堟暟銆?/p>

骞虫柟鎺㈡祴娉曪細

鍐茬獊鏄笉鍙伩鍏嶇殑锛屾湰棰樹腑鎻愬埌鐨勮В鍐冲啿绐佺殑骞虫柟鎺㈡祴娉曪細

  1. 褰搃ndex鐨勪綅缃凡缁忔病鏈夎鍗犵敤锛屽垯index灏辨槸hash鍊笺€傚鏋滃凡缁忓埆鍗犵敤锛屽垯杩涜姝ラ2.
  2. 鐪媋ns = index+k*k锛坘浠?寮€濮嬶級鏄笉鏄鍗犵敤锛屽鏋滄病鏈夎鍗犵敤锛屽垯ans涓篽ash鍊硷紝鍚﹀垯灏辫繘琛屾楠?.
  3. 鐪媋ns = index-k*k锛坘浠?寮€濮嬶級鏄笉鏄埆鍗犵敤锛屽鏋滄病鏈夎鍗犵敤锛屽垯ans涓篽ash鍊硷紝鍚﹀垯灏眐++锛岃繘琛屾楠?.

浠g爜锛?/strong>

鎶€鏈垎浜浘鐗? id=
 1 #include <iostream>
 2 #include <queue>
 3 #include <cstdio>
 4 #include <algorithm>
 5 #include <cmath>
 6 #include <cstring>
 7 #include <map>
 8 #define INF 0x3f3f3f3f
 9 #define FRE() freopen("in.txt","r",stdin)
10 
11 using namespace std;
12 typedef long long ll;
13 typedef pair<int,int> P;
14 const int maxn = 50010;
15 map<string,int> mp;
16 string str;
17 int vis[maxn];
18 
19 int Judge(int sum, int p){
20     sum %= p;
21     if(mp.count(str)){//閲嶅鍑虹幇
22         return sum;
23     }
24     if(vis[sum] && mp[str] == 0){//鍙戠敓鍐茬獊
25         int k = 1,tmp = sum;
26         while(vis[sum]){
27             sum = (tmp+k*k)%p;
28             if(!vis[sum])break;
29             sum = (tmp-k*k+p)%p;
30             k++;
31         }
32         vis[sum] = 1;
33         mp[str] = sum;
34         return sum;
35     }
36     else if(!vis[sum] && mp[str] == 0){
37         vis[sum] = 1;
38         mp[str] = sum;
39         return sum;
40     }
41 }
42 
43 
44 
45 int main() {
46     //FRE();
47     int n,p;
48     cin>>n>>p;
49     memset(vis,0,sizeof(vis));
50     for(int i = 0; i<n; i++) {
51         cin>>str;
52         int len = str.size(),sum = 0;
53         if(len>3) {
54             for(int j = len-3; str[j]; j++) {
55                 int temp = str[j]-鈥?/span>A鈥?/span>;
56                 sum = sum*32 + temp;
57             }
58         } else {
59             for(int j = 0; str[j]; j++) {
60                 int temp = str[j] - 鈥?/span>A鈥?/span>;
61                 sum = sum*32 + temp;
62             }
63         }
64         int tt = Judge(sum, p);
65         if(i == 0)
66             cout<<tt;
67         else
68             cout<<" "<<tt;
69     }
70     cout<<endl;
71     return 0;
72 }
73 /*
74 杈撳叆1锛?75 4 11
76 HELLO ANNK ZOE LOLI
77 杈撳嚭1锛?78 3 10 4 0
79 杈撳叆2锛?80 6 11
81 LLO ANNA NNK ZOJ INNK AAA
82 杈撳嚭2锛?83 3 0 10 9 6 1
84 */
View Code

 

以上是关于7-14 瀛楃涓插叧閿瓧鐨勬暎鍒楁槧灏?锛?5 鍒嗭級的主要内容,如果未能解决你的问题,请参考以下文章

HTML銆丆SS鍜孞S

GULPME 锛?鏃╅椋熻氨鎺ㄤ粙

浜岃繘鍒?amp;瀛楃缂栫爜_20210306

璁板綍瑙嗛鈥?Why I build Docker"

涓插彛灏佽

ORM锛堝璞″叧绯绘槧灏勶級