多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

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

CSU 1581Clock Pictures Hash

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

題目鏈接:點擊打開鏈接

題意:

給出鬧鐘的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; }


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美激情在线精品一区二区 | 亚州三级| 一区二区三区免费观看 | 欧美黄色片一级 | 都市激情亚洲色图 | 综合精品 | 亚洲精品久久久久久久网站 | 欧美日本韩国一区二区 | 免费一级做a爰片性色毛片 免费一看一级毛片 | 亚洲精品久久久久久久久久久网站 | 中文字幕在线免费视频 | 自拍偷拍1 | 亚洲第一免费 | 一区二区三区精品 | 欧美日本道免费一区二区三区 | 国产中文99视频在线观看 | 男女羞羞视频网站 | 国内精品综合九九久久精品 | 国产成人久久精品区一区二区 | 波多野结衣50连精喷在线 | www.日本xxxx| 国产亚洲欧美精品久久久 | 亚洲一区二区综合 | 自拍偷拍亚洲 | 亚洲视频在线观看网址 | 手机看片高清国产日韩片 | 亚洲成人国产精品 | 四虎在线永久精品高清 | 春色视频免费版高清在线观看 | 日本护士ooowww | 欧美好色 | 毛片毛片 | 国内精品视频九九九九 | 成人国产激情福利久久精品 | 精品国产影院 | 国产亚洲精品午夜高清影院 | 性色欧美 | 国产日韩精品视频一区二区三区 | 欧美日韩亚洲精品一区二区 | 国产操女 | 欧美人成在线 |