畫圖可知,當c點在向量ab的右邊時,圖形為順時針,則向量ab與向量ac的叉乘的值應小於0。
#include
using
namespace std;
typedef
long
long ll;
struct pointpoint[10]
;int
main()
return0;
}
當每輸入一次範圍時,只需要達到輸入的範圍的最小值大於等於上一次輸入的最小值-k(即li - k),輸入的範圍的最大值小於等於上一次輸入的最大值+k(即ri + k)即可,若存在沒有達到此條件的範圍,則輸出「no」,反之輸出「yes」,可能的值可隨機輸出每個達標範圍的任意值(這裡為了簡化程式設計我們輸出的為最小值)
#include
using
namespace std;
const
int n =
1e5+10;
int l[n]
, r[n]
;int main (
)for
(int i = n; i >
1; i--
)bool flag =
true
;for
(int i =
1; i <= n; i++)if
(flag)
}else cout <<
"no\n";}
return0;
}
題意為,將字串s平均分割為k塊(其中strlen(s)% k == 0 && k > 1)是得k個子字串相互迴圈同構。假設s中某元素出現了x次,那麼關於迴圈同構,此字串最多被分為x個等長度相鄰字串,由此可知,字串滿足迴圈同構必須滿足s可被分段的段數為出現次數最少的元素的次數。我們可在此次數的條件下進行列舉其中n % 次數 其值為 0 才滿足條件,否則此列舉不滿足,應跳過。如果所有列舉都不滿足,則s字串不滿足題意,輸出「no」,若存在乙個滿足的列舉值,則輸出「yes」。
#include
using
namespace std;
typedef
long
long ll;
const
int mac =
5e6+10;
const
int mod =
7e6+61;
const
int base =29;
char s[mac]
;int nb[30]
;int vis[mac <<1]
;ll pw[mac]
;int cnt =0;
intcheck
(int n,
int len)
for(
int i =
1; i < n / len; i++
)return1;
}int main ()if
(mi ==1)
for(
int i =1;
1ll* i * i <= mi; i++
)int fac = mi / i;
if(fac == i)
continue;if
(fac ==1)
continue;if
(n % fac)
continue
; ok =
check
(n, n / fac);if
(ok)}if
(mk) cout <<
"yes\n"
;else cout <<
"no\n";}
return0;
}
杭電多校第八場
1003 題目鏈結 clockwise or counterclockwise 水題,經歷過牛客應該知道叉積可以判斷順逆時針。叉積參考 叉積 參考 include include include include include include include include include incl...
2019杭電多校第八場
感覺慢慢陷入了疲態 依舊是努力簽到的一天 1009 calabash and landlord 各種分類討論,交上去,wa,造資料,找到bug,改一改,交上去,wa,造資料,改一改,wa,改一改,wa 迴圈多次後ac,然後自己也不知道自己寫的是個啥了。後來聽群裡老哥們說只要離散化到5 5的格仔裡然後...
杭電多校2020第八場
isomorphic strings 題意 兩個字串s,t互為cyclical isomorphic,當且僅當s將前x個字元移到末尾後,s與t想等,例如s abcde,t deabc,那麼s和t互為cyclical isomorphic。給定乙個s串,長度為n,k為n的因子,現在將s分成k個等長的字...