{"id":20,"date":"2022-06-04T10:52:00","date_gmt":"2022-06-04T02:52:00","guid":{"rendered":"http:\/\/ubuntu.tim-wcx.ltd\/wordpress\/index.php\/2022\/06\/04\/2020-09-08-%e6%95%b0%e4%bd%8ddp%e4%ba%8c%e5%88%86\/"},"modified":"2022-06-04T10:52:00","modified_gmt":"2022-06-04T02:52:00","slug":"2020-09-08-%e6%95%b0%e4%bd%8ddp%e4%ba%8c%e5%88%86","status":"publish","type":"post","link":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/2022\/06\/04\/2020-09-08-%e6%95%b0%e4%bd%8ddp%e4%ba%8c%e5%88%86\/","title":{"rendered":"2020-09-08 \u6570\u4f4dDP+\u4e8c\u5206"},"content":{"rendered":"<p><svg  style=\"display: none;\">\n                        <path stroke-linecap=\"round\" d=\"M5,0 0,2.5 5,5z\" id=\"raphael-marker-block\" style=\"-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\"><\/path>\n                    <\/svg><\/p>\n<p><a href=\"http:\/\/icpc.upc.edu.cn\/problem.php?cid=2573&#038;pid=6\">http:\/\/icpc.upc.edu.cn\/problem.php?cid=2573&#038;pid=6<\/a><\/p>\n<h6><a id=\"_1\"><\/a>\u9898\u76ee\u63cf\u8ff0<\/h6>\n<p>Tom is very interested in number problem. Nowadays he is thinking of a problem about A-number and B-number.<\/p>\n<p>A-number is a positive integer whose decimal form contains 7 or it can be divided by 7. We can write down the first 10 A-number ( a[i] is the ith A-number)<\/p>\n<p>{a[1]=7,a[2]=14,a[3]=17,a[4]=21,a[5]=27,a[6]=28,a[7]=35,a[8]=37,a[9]=42,a[10]=47};<\/p>\n<p>B-number is Sub-sequence of A-number which contains all A-number but a[k] ( that k is a A-number.) Like 35, is the 7th A-number and 7 is also an A-number so the 35 ( a[7] ) is not a B-number. We also can write down the first 10 B-number.<\/p>\n<p>{b[1]=7,b[2]=14,b[3]=17,b[4]=21,b[5]=27,b[6]=28,b[7]=37,b[8]=42,b[9]=47,b[10]=49};<\/p>\n<p>Now Given an integer N, please output the Nth B-number.<\/p>\n<h6><a id=\"_15\"><\/a>\u8f93\u5165<\/h6>\n<p>The input consists of multiple test cases.<\/p>\n<p>For each test case, there will be a positive integer N as the description.<\/p>\n<h6><a id=\"_20\"><\/a>\u8f93\u51fa<\/h6>\n<p>For each test case, output an integer indicating the Nth B-number.<\/p>\n<p>You can assume the result will be no more then 2^63-1.<\/p>\n<h6><a id=\"_25\"><\/a>\u6837\u4f8b\u8f93\u5165<\/h6>\n<pre><code>1\n7\n100\n<\/code><\/pre>\n<h6><a id=\"_31\"><\/a>\u6837\u4f8b\u8f93\u51fa<\/h6>\n<pre><code>7\n37\n470\n<\/code><\/pre>\n<p>\u6570\u4f4dDP+\u4e8c\u5206\u67e5\u627e<br \/> <a href=\"https:\/\/www.cnblogs.com\/shinecheng\/p\/3601235.html\">https:\/\/www.cnblogs.com\/shinecheng\/p\/3601235.html<\/a><br \/> <a href=\"https:\/\/blog.csdn.net\/weixin_33827965\/article\/details\/93230896\">https:\/\/blog.csdn.net\/weixin_33827965\/article\/details\/93230896<\/a><\/p>\n<pre><code class=\"prism language-cpp\"><span class=\"token macro property\">#<span class=\"token directive keyword\">include<\/span> <span class=\"token string\"><bits\/stdc++.h><\/span><\/span>\n<span class=\"token keyword\">using<\/span> <span class=\"token keyword\">namespace<\/span> std<span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">typedef<\/span> <span class=\"token keyword\">unsigned<\/span> <span class=\"token keyword\">long<\/span> <span class=\"token keyword\">long<\/span> ll<span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/\/2^63-1 \u5efa\u8bae\u7528unsigned long long <\/span>\nll newx<span class=\"token punctuation\">;<\/span>\nll number<span class=\"token punctuation\">[<\/span><span class=\"token number\">1005<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\nll dp<span class=\"token punctuation\">[<\/span><span class=\"token number\">1005<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span><span class=\"token number\">1005<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\nll power<span class=\"token punctuation\">[<\/span><span class=\"token number\">300<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">{<!-- --><\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token keyword\">inline<\/span> ll <span class=\"token function\">dfs<\/span><span class=\"token punctuation\">(<\/span>ll i<span class=\"token punctuation\">,<\/span>ll mod<span class=\"token punctuation\">,<\/span><span class=\"token keyword\">int<\/span> lim<span class=\"token punctuation\">)<\/span> <span class=\"token comment\">\/\/\/lim\u4e3a\u6807\u8bb0\u662f\u5426\u6709\u4e0a\u9650<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token operator\">==<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token keyword\">return<\/span> mod<span class=\"token operator\">==<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span>lim<span class=\"token operator\">&&<\/span><span class=\"token operator\">~<\/span>dp<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>mod<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span>  <span class=\"token comment\">\/\/\/ ~(-1)=0<\/span>\n        <span class=\"token keyword\">return<\/span> dp<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>mod<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">int<\/span> end1<span class=\"token operator\">=<\/span>lim<span class=\"token operator\">?<\/span>number<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">:<\/span><span class=\"token number\">9<\/span><span class=\"token punctuation\">;<\/span>\n    ll ans<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> j<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>j<span class=\"token operator\"><=<\/span>end1<span class=\"token punctuation\">;<\/span>j<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>j<span class=\"token operator\">!=<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n            ans<span class=\"token operator\">+<\/span><span class=\"token operator\">=<\/span><span class=\"token function\">dfs<\/span><span class=\"token punctuation\">(<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span><span class=\"token punctuation\">(<\/span>mod<span class=\"token operator\">-<\/span><span class=\"token punctuation\">(<\/span>j<span class=\"token operator\">*<\/span>power<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">%<\/span><span class=\"token number\">7<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">%<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">,<\/span>lim<span class=\"token operator\">&&<\/span>j<span class=\"token operator\">==<\/span>end1<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>  <span class=\"token comment\">\/\/\/\u53d6\u4f59\u4e3a7\u7684\u60c5\u51b5<\/span>\n        <span class=\"token keyword\">else<\/span> <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>j<span class=\"token operator\">==<\/span><span class=\"token number\">7<\/span><span class=\"token punctuation\">)<\/span>\n            ans<span class=\"token operator\">+<\/span><span class=\"token operator\">=<\/span><span class=\"token punctuation\">(<\/span>lim<span class=\"token operator\">&&<\/span>j<span class=\"token operator\">==<\/span>end1<span class=\"token punctuation\">)<\/span><span class=\"token operator\">?<\/span><span class=\"token punctuation\">(<\/span>newx<span class=\"token operator\">%<\/span>power<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">:<\/span>power<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">;<\/span> <span class=\"token comment\">\/\/\/\u9996\u4f4d\u4e3a7\u7684\u60c5\u51b5<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span><span class=\"token operator\">!<\/span>lim<span class=\"token punctuation\">)<\/span> <span class=\"token comment\">\/\/\/\u6ca1\u6709\u9650\u5236<\/span>\n        dp<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>mod<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>ans<span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">return<\/span> ans<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\nll <span class=\"token function\">js<\/span><span class=\"token punctuation\">(<\/span>ll p<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    newx<span class=\"token operator\">=<\/span>p<span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>p<span class=\"token operator\">==<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token keyword\">return<\/span> <span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">int<\/span> k<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">while<\/span><span class=\"token punctuation\">(<\/span>p<span class=\"token operator\">!=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        number<span class=\"token punctuation\">[<\/span><span class=\"token operator\">++<\/span>k<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>p<span class=\"token operator\">%<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n        p<span class=\"token operator\">=<\/span>p<span class=\"token operator\">\/<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">return<\/span> <span class=\"token function\">dfs<\/span><span class=\"token punctuation\">(<\/span>k<span class=\"token punctuation\">,<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">,<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\nll <span class=\"token function\">out<\/span><span class=\"token punctuation\">(<\/span>ll n<span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    ll l<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">,<\/span>r<span class=\"token operator\">=<\/span><span class=\"token punctuation\">(<\/span><span class=\"token number\">1ll<\/span><span class=\"token operator\"><<<\/span><span class=\"token number\">63<\/span><span class=\"token punctuation\">)<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">while<\/span><span class=\"token punctuation\">(<\/span>l<span class=\"token operator\"><<\/span>r<span class=\"token punctuation\">)<\/span>\n    <span class=\"token punctuation\">{<!-- --><\/span>\n        ll mid<span class=\"token operator\">=<\/span><span class=\"token punctuation\">(<\/span>l<span class=\"token operator\">+<\/span>r<span class=\"token punctuation\">)<\/span><span class=\"token operator\">\/<\/span><span class=\"token number\">2<\/span><span class=\"token punctuation\">;<\/span><span class=\"token punctuation\">;<\/span>\n        ll a<span class=\"token operator\">=<\/span><span class=\"token function\">js<\/span><span class=\"token punctuation\">(<\/span>mid<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        ll b<span class=\"token operator\">=<\/span>a<span class=\"token operator\">-<\/span><span class=\"token function\">js<\/span><span class=\"token punctuation\">(<\/span>a<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">if<\/span><span class=\"token punctuation\">(<\/span>b<span class=\"token operator\">>=<\/span>n<span class=\"token punctuation\">)<\/span>\n            r<span class=\"token operator\">=<\/span>mid<span class=\"token punctuation\">;<\/span>\n        <span class=\"token keyword\">else<\/span>\n            l<span class=\"token operator\">=<\/span>mid<span class=\"token operator\">+<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token punctuation\">}<\/span>\n    <span class=\"token keyword\">return<\/span> l<span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<span class=\"token keyword\">int<\/span> <span class=\"token function\">main<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\n<span class=\"token punctuation\">{<!-- --><\/span>\n    power<span class=\"token punctuation\">[<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\"><=<\/span><span class=\"token number\">100<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        power<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span>power<span class=\"token punctuation\">[<\/span>i<span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">]<\/span><span class=\"token operator\">*<\/span><span class=\"token number\">10<\/span><span class=\"token punctuation\">;<\/span>\n    ll n<span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> i<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\"><<\/span><span class=\"token number\">200<\/span><span class=\"token punctuation\">;<\/span>i<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token keyword\">for<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">int<\/span> j<span class=\"token operator\">=<\/span><span class=\"token number\">0<\/span><span class=\"token punctuation\">;<\/span>j<span class=\"token operator\"><<\/span><span class=\"token number\">200<\/span><span class=\"token punctuation\">;<\/span>j<span class=\"token operator\">++<\/span><span class=\"token punctuation\">)<\/span>\n            dp<span class=\"token punctuation\">[<\/span>i<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">[<\/span>j<span class=\"token punctuation\">]<\/span><span class=\"token operator\">=<\/span><span class=\"token operator\">-<\/span><span class=\"token number\">1<\/span><span class=\"token punctuation\">;<\/span>\n    <span class=\"token keyword\">while<\/span><span class=\"token punctuation\">(<\/span><span class=\"token function\">scanf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%lld\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token operator\">&<\/span>n<span class=\"token punctuation\">)<\/span><span class=\"token operator\">!=<\/span><span class=\"token constant\">EOF<\/span><span class=\"token punctuation\">)<\/span>\n        <span class=\"token function\">printf<\/span><span class=\"token punctuation\">(<\/span><span class=\"token string\">\"%lldn\"<\/span><span class=\"token punctuation\">,<\/span><span class=\"token function\">out<\/span><span class=\"token punctuation\">(<\/span>n<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\n<span class=\"token punctuation\">}<\/span>\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>http:\/\/icpc.upc.edu.cn\/pr&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-20","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/posts\/20","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/comments?post=20"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/posts\/20\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/media?parent=20"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/categories?post=20"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.tim-wcx.ltd\/index.php\/wp-json\/wp\/v2\/tags?post=20"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}