{"id":359,"date":"2020-04-22T10:05:17","date_gmt":"2020-04-22T02:05:17","guid":{"rendered":"http:\/\/nocriz.com\/?p=359"},"modified":"2021-09-08T20:20:07","modified_gmt":"2021-09-08T12:20:07","slug":"noi2018%e5%b1%a0%e9%be%99%e5%8b%87%e5%a3%ab","status":"publish","type":"post","link":"https:\/\/nocriz.com\/?p=359","title":{"rendered":"[NOI2018]\u5c60\u9f99\u52c7\u58eb"},"content":{"rendered":"\n<p>\u5f85\u8865\u9898\u89e3\u3002<\/p>\n\n\n\n<!--more-->\n\n\n\n<pre class=\"wp-block-code\"><code>#pragma comment(linker, \"\/stack:200000000\")\n#pragma GCC optimize(\"Ofast,no-stack-protector\")\n#pragma GCC target(\"sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,avx2,tune=native\")\n#pragma GCC optimize(\"unroll-loops\")\n#include &lt;bits\/stdc++.h>\n\n\nusing namespace std;\ntypedef long long ll;\n#define set0(x) memset(x,0,sizeof(x))\n#define F first\n#define S second\n#define PB push_back\n#define MP make_pair\n#define rep(i, a, b) for(int i = a; i &lt; (b); ++i)\n#define trav(a, x) for(auto&amp; a : x)\n#define all(x) x.begin(), x.end()\n#define sz(x) (int)(x).size()\n\nll chkmax(ll &amp;a,ll b){return a = a>b?a:b;}\ntypedef long long ll;\ntypedef pair&lt;int,int> pii;\ntypedef pair&lt;ll,ll> pll;\ntypedef vector&lt;int> VI;\ntemplate&lt;typename T> void read(T &amp;x){\n\tx = 0;char ch = getchar();ll f = 1;\n\twhile(!isdigit(ch)){if(ch == '-')f*=-1;ch=getchar();}\n\twhile(isdigit(ch)){x = x*10+ch-48;ch=getchar();}x*=f;\n}\ntemplate&lt;typename T, typename... Args> void read(T &amp;first, Args&amp; ... args) {\n\tread(first);\n\tread(args...);\n}\n\nll euclid(ll a, ll b, ll &amp;x, ll &amp;y) {\n\tif (b) { ll d = euclid(b, a % b, y, x);\n\t\treturn y -= a\/b * x, d; }\n\treturn x = 1, y = 0, a;\n}\n\n__int128_t crt(__int128_t a, __int128_t m, __int128_t b, __int128_t n) {\n\tif (n > m) swap(a, b), swap(m, n);\n\tll cx,cy,g = euclid(m, n, cx, cy);\n\t__int128_t x = cx,y = cy;\n\tif(!((a - b) % g == 0))return -1;\n\tx = (b - a) % n * x % n \/ g * m + a;\n\treturn x &lt; 0 ? x + m*n\/g : x;\n}\n\nll mul(ll a,ll b,ll c){\n\treturn (ll)(__int128_t(a)*b%c);\n}\nll T;\nint main() {\n\tread(T);\n\twhile(T--){\n\t\tint n,m;\n\t\tll cu,lwb = 0,ma,mm;\n\t\tmultiset&lt;ll> Se;\n\t\tread(n,m);\n\t\tvector&lt;ll> a(n+1),p(n+1),aw(n+1),u(n+1),req(n+1),md(n+1);\n\t\tfor(int i=1;i&lt;=n;i++)read(a&#91;i]);\n\t\tfor(int i=1;i&lt;=n;i++)read(p&#91;i]);\n\t\tfor(int i=1;i&lt;=n;i++)read(aw&#91;i]);\n\t\tfor(int i=1;i&lt;=m;i++){\n\t\t\tread(cu);\n\t\t\tSe.insert(cu);\n\t\t}\n\t\tfor(int i=1;i&lt;=n;i++){\n\t\t\tauto it = Se.upper_bound(a&#91;i]);\n\t\t\tif(*it != *Se.begin())it--;\n\t\t\tu&#91;i] = *it;\n\t\t\tSe.erase(Se.find(*it));\n\t\t\tSe.insert(aw&#91;i]);\n\t\t}\n\t\tfor(int i=1;i&lt;=n;i++){\n\t\t\tlwb = max(lwb,(a&#91;i]+u&#91;i]-1)\/u&#91;i]);\n\t\t\tll x,y,d = euclid(u&#91;i]%p&#91;i],p&#91;i],x,y),cr = a&#91;i]%p&#91;i];\n\t\t\tif(cr%d == 0){\n\t\t\t\tmd&#91;i] = p&#91;i]\/d;\n\t\t\t\tx = (x%md&#91;i])+md&#91;i];\n\t\t\t\treq&#91;i] = mul(x,cr\/d,md&#91;i]);\n\t\t\t}else goto fail;\n\t\t}\n\t\tma = 0;\n\t\tmm = 1;\n\t\tfor(int i=1;i&lt;=n;i++){\n\t\t\tma = crt(ma,mm,req&#91;i],md&#91;i]);\n\t\t\tif(ma == -1){\n\t\t\t\tgoto fail;\n\t\t\t}\n\t\t\tmm = mm*(md&#91;i]\/__gcd(mm,md&#91;i]));\n\t\t}\n\t\tcout&lt;&lt;mm*((lwb-ma+mm-1)\/mm)+ma&lt;&lt;endl;\n\t\tcontinue;\n\t\tfail:;\n\t\tcout&lt;&lt;-1&lt;&lt;endl;\n\t}\n\treturn 0;\n}\n<\/code><\/pre>\n ","protected":false},"excerpt":{"rendered":"<p>\u5f85\u8865\u9898\u89e3\u3002<\/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":[],"_links":{"self":[{"href":"https:\/\/nocriz.com\/index.php?rest_route=\/wp\/v2\/posts\/359"}],"collection":[{"href":"https:\/\/nocriz.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nocriz.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nocriz.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nocriz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=359"}],"version-history":[{"count":1,"href":"https:\/\/nocriz.com\/index.php?rest_route=\/wp\/v2\/posts\/359\/revisions"}],"predecessor-version":[{"id":360,"href":"https:\/\/nocriz.com\/index.php?rest_route=\/wp\/v2\/posts\/359\/revisions\/360"}],"wp:attachment":[{"href":"https:\/\/nocriz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=359"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nocriz.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=359"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nocriz.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=359"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}