日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > CSU 1581Clock Pictures Hash

CSU 1581Clock Pictures Hash

來源:程序員人生   發布時間:2015-05-19 08:27:45 閱讀次數:2824次

題目鏈接:點擊打開鏈接

題意:

給出鬧鐘的n個指針當前所指的角度

求2個鬧鐘通過旋轉后能否相同

思路:

先排個序保證偏序的關系,然后坐差,

枚舉第2個串的哪1位和第1個串的第1字符匹配,然后hash判斷

#include <iostream> #include <cstdio> #include <cstring> #include <string> #include <vector> #include <algorithm> template <class T> inline bool rd(T &ret) { char c; int sgn; if (c = getchar(), c == EOF) return 0; while (c != '-' && (c<'0' || c>'9')) c = getchar(); sgn = (c == '-') ? ⑴ : 1; ret = (c == '-') ? 0 : (c - '0'); while (c = getchar(), c >= '0'&&c <= '9') ret = ret * 10 + (c - '0'); ret *= sgn; return 1; } template <class T> inline void pt(T x) { if (x <0) { putchar('-'); x = -x; } if (x>9) pt(x / 10); putchar(x % 10 + '0'); } using namespace std; const int N = 200105; typedef long long ll; const int MAGIC = 311, MOD = 1e9 + 7; template <class T> struct HASH{ ll h[N], base[N]; inline void init(T *s, int len) { h[0] = 1; for (int i = 1; i <= len; ++i) h[i] = (h[i - 1] * MAGIC % MOD + s[i - 1]) % MOD; base[0] = 1; for (int i = 1; i <= len; ++i) base[i] = (base[i - 1] * MAGIC) % MOD; } inline long long get(int l, int r) { return (h[r] - h[l - 1] * base[r - l + 1] % MOD + MOD) % MOD; } }; HASH <int>A, B; int a[N], b[N], n; ll x[N], y[N]; int main(){ while (~scanf("%d", &n)){ for (int i = 0; i < n; i++)rd(a[i]); for (int i = 0; i < n; i++)rd(b[i]); sort(a, a + n); sort(b, b + n); a[n] = a[0]; b[n] = b[0]; for (int i = 0; i < n; i++){ a[i] = a[i + 1] - a[i]; if (a[i] < 0) a[i] += 360000; b[i] = b[i + 1] - b[i]; if (b[i] < 0) b[i] += 360000; } // for(int i = 0;i < n; i++)cout<<a[i]<<" "; puts(""); // for(int i = 0;i < n; i++)cout<<b[i]<<" "; puts(""); A.init(a, n); B.init(b, n); bool ok = A.get(1, n) == B.get(1, n); for (int i = 2; i <= n && ok == false; i++){ int len = n - i; // printf("(%d,%d)-(%d,%d) ", 1,len+1,i,n); // printf("(%d,%d)-(%d,%d) ", len+2,n,1,i⑴); if (A.get(1, len + 1) == B.get(i, n) && A.get(len + 2, n) == B.get(1, i - 1)) ok = true; } if (ok)puts("possible"); else puts("impossible"); } return 0; }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 99午夜| 一区免费视频 | 91久久| 精品福利在线观看 | 一本一本久久a久久精品综合小说 | 成人中文视频 | 久草成人在线 | 欧美日韩一区二区三区不卡 | 一区二区蜜桃 | 欧美成人精品一区二区三区在线看 | 日本免费三片免费观看 | 手机福利视频 | 一区二区亚洲 | 欧美aaaaaa午夜精品 | 久久一视频| 久久成年 | 91久久精品| 欧美成人一区二区三区片免费 | 99精品视频免费在线观看 | 国产精品成人一区 | 一级毛片一级毛片一级毛片 | 中文字幕精品一区久久久久 | 亚洲一区二区在线免费观看 | 美日韩中文字幕 | av在线资源站 | 国产一区二区三区在线看 | 国产在线一区二区三区 | 97av免费视频 | 国产乱国产乱300精品 | 精品成人av一区二区在线播放 | 亚洲美女性视频 | 亚洲日本va中文字幕久久 | 国产一区二区三区日韩 | 99色网 | 天堂网在线观看 | 亚洲成人精品一区二区三区 | 国产精品区二区三区日本 | 亚洲一区二区三区在线视频 | 日韩精品福利视频 | 日韩av电影免费观看 | 日韩在线观看视频免费 |