{"id":32,"date":"2023-06-18T23:07:33","date_gmt":"2023-06-18T15:07:33","guid":{"rendered":"http:\/\/boyliang.com\/?p=32"},"modified":"2025-08-05T21:58:35","modified_gmt":"2025-08-05T13:58:35","slug":"%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84%ef%bc%88%e4%ba%8c%ef%bc%89","status":"publish","type":"post","link":"https:\/\/boyliang.com\/index.php\/2023\/06\/18\/%e6%95%b0%e6%8d%ae%e7%bb%93%e6%9e%84%ef%bc%88%e4%ba%8c%ef%bc%89\/","title":{"rendered":"\u6570\u636e\u7ed3\u6784\uff08\u4e8c\uff09"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">\u4e00\u3001Trie\u6811:<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1.\u9ad8\u901f\u5b58\u50a8\u548c\u67e5\u8be2\u5b57\u7b26\u4e32\u96c6\u5408<\/h4>\n\n\n\n<pre class=\"wp-block-code\"><code>#include&lt;iosteam&gt;\nusing namespace std;\nconst int N = 100010;\nint son&#91;N]&#91;26],cnt&#91;N],idx;\/\/\u4e0b\u8868\u662f0\u7684\u70b9\u65e2\u662f\u6839\u8282\u70b9\u53c8\u662f\u7a7a\u7ed3\u70b9\nchar str&#91;N];\nvoid insert(char str&#91;]){\n    int p=0;\/\/\u4ece\u6839\u8282\u70b9\u5f00\u59cb\u904d\u5386\n    for(int i=0;str&#91;i];i++){\n        int u = str&#91;i] - 'a';\n        if(!son&#91;p]&#91;u])son&#91;p]&#91;u] = ++idx;\n        p=son&#91;p]&#91;u];\n    }\n    cnt&#91;p]++;\n}\n\nint query(char str&#91;]){\n    int p=0;\n    for(int i=0;str&#91;i];i++){\n        int u=str&#91;i]-'a';\n        if(!son&#91;p]&#91;u])return 0;\n        p=son&#91;p]&#91;u];\n    }\n    return cnt&#91;p];\n}\nint main(){\n    int n;\n    scanf(\"%d\",&amp;n);\n    while(n--){\n        char op&#91;2];\n        scanf(\"%s%s\",op,str);\n        if(op&#91;0]=='I')insert(str);\n        else printf(\"%d\\n\",query(str));\n    }\n    return 0;\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e8c\u3001.\u5e76\u67e5\u96c6<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">1.\u5c06\u4e24\u4e2a\u96c6\u5408\u5408\u5e76<\/h4>\n\n\n\n<h4 class=\"wp-block-heading\">2.\u8be2\u95ee\u4e24\u4e2a\u5143\u7d20\u662f\u5426\u5728\u4e00\u4e2a\u96c6\u5408\u4e2d<\/h4>\n\n\n\n<p>\u57fa\u672c\u539f\u7406\uff1a\u6bcf\u4e00\u4e2a\u96c6\u5408\u7528\u4e00\u9897\u6811\u6765\u8868\u793a\u3002\u6811\u6839\u7684\u7f16\u53f7\u5c31\u662f\u6574\u4e2a\u96c6\u5408\u7684\u7f16\u53f7\u3002\u6bcf\u4e2a\u7ed3\u70b9\u5b58\u50a8\u5b83\u7684\u7236\u8282\u70b9\uff0cp[x]\u8868\u793ax\u7684\u7236\u8282\u70b9\u3002<\/p>\n\n\n\n<p>\u95ee\u98981\uff1a\u5982\u4f55\u5224\u65ad\u6811\u6839\uff1aif(p[x]==x)<\/p>\n\n\n\n<p>\u95ee\u98982\uff1a\u5982\u4f55\u6c42x\u7684\u96c6\u5408\u7f16\u53f7\uff1awhile(p[x]!=x)x=p[x];<\/p>\n\n\n\n<p>\u95ee\u98983\uff1a\u5982\u4f55\u5408\u5e76\u4e24\u4e2a\u96c6\u5408\uff1a px\u662fx\u7684\u96c6\u5408\u7f16\u53f7\uff0cpy\u662fy\u7684\u96c6\u5408\u7f16\u53f7\u3002 p[x]=y;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#include&lt;iostream&gt;\nusing namespace std;\nconst int N = 100010;\nint n,m;\nint p&#91;N];\n\nint find(int x){\/\/\u8fd4\u56dex\u7684\u7956\u5b97\u7ed3\u70b9+\u8def\u7ecf\u538b\u7f29\n    if(p&#91;x]!=x)p&#91;x]=find(p&#91;x]);\n    return p&#91;x];\n}\nint main(){\n    \n    scanf(\"%d%d\",&amp;n,&amp;m);\n    for(int i=0;i&lt;m;i++){\n        p&#91;i]=i;\n    }\n    while(m--){\n        char op&#91;2];\n        int a,b;\n        scanf(\"%s%d%d\",op,&amp;a,&amp;b);\n        \n        if(op&#91;0]=='M')p&#91;find(a)==find(b)];\n        else{\n            if(find(a)==find(b))puts(\"Yes\");\n            else puts(\"No\");\n        }\n    }\n    return 0;\n}<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>#include&lt;iostream&gt;\nusing namespace std;\nconst int N = 100010;\nint p&#91;N],size&#91;N];\nint m,m;\nint find(int x){\n    while(p&#91;x]\uff01=x)p&#91;x]=find(p&#91;x]);\n    return p&#91;x];\n}\n\nint main(){\n    scanf(\"%d%d\",&amp;n,&amp;m);\n    for(int i = 0;i&lt;m;i++){\n        p&#91;i]=i;\n        size&#91;i]=1;\n    }\n    while(m--){\n        char op&#91;5];\n        int a,b;\n        scanf(\"%s\",op);\n        if(op&#91;0]=='C'){\n            scanf(\"%d%d\",&amp;a,&amp;b);\n            if(find(a)==find(b))continue;\n            size&#91;find(b)]+=size&#91;find(a)];\n            p&#91;find(b)]=find(b);\n        }else if(op&#91;i]='Q1'){\n            scanf(\"%d%d\",&amp;a,&amp;b);\n            if(find(a)==find(b))puts(\"Yes\");\n            else puts(\"No\");\n        }else{\n            scanf(\"%d\",&amp;a);\n            prinf(\"%d\\n\",size&#91;find(a)]);\n        }\n    }\n    return 0;\n}<\/code><\/pre>\n\n\n\n<p>\u53d8\u578b\u9898\uff1a<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u3001Trie\u6811: 1.\u9ad8\u901f\u5b58\u50a8\u548c\u67e5\u8be2\u5b57\u7b26\u4e32\u96c6\u5408 \u4e8c\u3001.\u5e76\u67e5\u96c6 1.\u5c06\u4e24\u4e2a\u96c6\u5408\u5408\u5e76 2.\u8be2\u95ee\u4e24\u4e2a\u5143\u7d20\u662f\u5426\u5728\u4e00\u4e2a\u96c6 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":["post-32","post","type-post","status-publish","format-standard","hentry","category-9"],"_links":{"self":[{"href":"https:\/\/boyliang.com\/index.php\/wp-json\/wp\/v2\/posts\/32","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/boyliang.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/boyliang.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/boyliang.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/boyliang.com\/index.php\/wp-json\/wp\/v2\/comments?post=32"}],"version-history":[{"count":1,"href":"https:\/\/boyliang.com\/index.php\/wp-json\/wp\/v2\/posts\/32\/revisions"}],"predecessor-version":[{"id":55,"href":"https:\/\/boyliang.com\/index.php\/wp-json\/wp\/v2\/posts\/32\/revisions\/55"}],"wp:attachment":[{"href":"https:\/\/boyliang.com\/index.php\/wp-json\/wp\/v2\/media?parent=32"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/boyliang.com\/index.php\/wp-json\/wp\/v2\/categories?post=32"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/boyliang.com\/index.php\/wp-json\/wp\/v2\/tags?post=32"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}