a. 固定乙個方向,兩兩相鄰的點順時針或逆時針構造三個向量,判斷這個點在這個向量的左側還是右側,看看是否在同一側。trick就是點在向量上,對應的情況就是值為0.
1defdo(p1x, p1y, p2x, p2y, p3x, p3y):
2return (p3x - p1x) * (p2y - p1y) - (p2x - p1x) * (p3y -p1y);
34 t = map(int, raw_input().split('
'))[0]
5while t >0:
6 t -= 1
7 px, py, ax, ay, bx, by, cx, cy = map(int, raw_input().split(''))
8 x, y, z =do(ax, ay, px, py, bx, by), do(bx, by, px, py, cx, cy), do(cx, cy, px, py, ax, ay)
9if (x >= 0 and y >= 0 and z >= 0) or (x <= 0 and y <= 0 and z <=0):
10print
'yes'11
else:12
print'no
'
b.打表規律,發現<=16的時候可以暴搜,>16的時候f(n)=4*f(n-5)(?如果沒記錯的話),矩陣加速一下就行了。
1 #include 2using
namespace
std;
34 typedef long
long
ll;5
const ll mod =1000000007ll;
6const
int maxn = 10;7
ll n;
8ll ret;
910 typedef struct
matrix
18} matrix;
1920
matrix mul(matrix m1, matrix m2, ll mod) 30}
31}32return
ans;33}
3435
matrix quickmul(matrix m, ll n, ll mod)
40 ans.r =m.r;
41 ans.c =m.c;
42while
(n)
46 m =mul(m, m, mod);
47 n >>= 1;48
}49return
ans;50}
5152
void
dfs(ll n, ll cur, ll sz)
57if(n >= 3) dfs(n-3,cur*2%mod, cur);
58if(n >= 1 && sz) dfs(n-1, (cur+sz)%mod, sz);
59 dfs(n-1,(cur+1)%mod, sz);60}
6162
intmain()
71 matrix x; x.r = 5, x.c = 1
;72 x.m[1][1] = 81, x.m[2][1] = 64, x.m[3][1] = 48, x.m[4][1] = 36, x.m[5][1] = 27
;73 matrix p; p.r = p.c = 5
;74 memset(p.m, 0, sizeof
(p.m));
75 p.m[1][5] = 4;76
for(int i = 2; i <= 5; i++) p.m[i][i-1] = 1
;77 p = quickmul(p, n-15
, mod);
78 p =mul(p, x, mod);
79 cout << p.m[1][1] <81return0;
82 }
c.對於trie上的每個節點u,求最小的整數x滿足 節點u對應的字串(trie上root->u的路徑) 是 s[1..x]的子串行。
1 #include 2using
namespace
std;34
const
int maxn = 10100;5
const
int maxm = 100100;6
const
int maxc = 30;7
8 typedef pairpii;
9 typedef struct
trie
20void insert(const
char*str)
28 val[u] =max(val[u], n);29}
30void dfs(int x, int
u) 42}43
}44}trie;
4546
intn;
47char
tmp[maxm];
48trie trie;
4950
intmain()
58 scanf("%s"
, tmp);
59 trie.s =tmp;
60 trie.dfs(0, 0
);61
int ret = 0;62
for(int i = 0; i <= trie.sz; i++) 67}
68 printf("
%d\n
", ret);69}
70return0;
71 }
微軟最新面經11 6
一面 自我介紹 聊專案及相關知識點 半個小時 矩陣原地旋轉,並且證明演算法的正確性 二面 英語自我介紹 聊專案 返回兩個有序陣列中第k大的值,時間複雜度要求o logn lead面 簡單介紹一下專案的亮點,稍微聊了下相關的知識點 英語分享日常生活,三分鐘 個人優缺點介紹 給乙個陣列,可修改乙個值,求...
面經 葫蘆面經
1 給定乙個n位數,例如12345,從裡面去掉k個數字,得到乙個n k位的數,例如去掉2,4,得到135,去掉1,5,得到234。設計演算法,求出所有得到的 n k位數裡面最小的那乙個 2 找明星 n個人中,只有乙個明星 明星不認識其他所有的人,而其他人 都認識明星,這些人中也可能相互認識。你每次只...
NOKIA筆經 面經
今天應該是畢業找工作生涯的最後一次面試了,發個筆經面經,為後來人 鋪路.我面的是radio network planning。筆試 海選,通過chinahr出的一組能力測試題篩選。好像篩了不少人。題目包括詞語填空,閱讀理解,圖形,數字題,基本數學題,題。一面 面試官為應聘職位的部門經理。基本上為中文...