대회/코드포스

#716 div2 04/19

xkdlaldfjtnl 2021. 4. 20. 20:52

codeforces.com/contest/1514

 

Dashboard - Codeforces Round #716 (Div. 2) - Codeforces

 

codeforces.com

기분 좋은 라운드 

 

 

하나라도 완전 제곱수 아닌 게 있으면 YES 아니면 NO sqrt를 이용해서 찾아본다. 어차피 어떤 정수의 완전제곱수라면 정수일테고 그 반대도 성립하기 때문에 그냥 (int)sqrt를 이용해서 찾으면 된다.

 

sqrt의 기본형이 실수형인걸 알았다. 

 

12분 솔브 

 

1솔브 끝 

 

B

 

bitwise AND 를 each마다 했을 때 0 이되게끔 하는 줄 알고 순열을 어떻게 사용해야 할지를 생각했다 하지만 그게 아니었고 모든 수에 대해서 bitwise를 하는 거였다. 즉 모든 bit에 대해서 0이 있어야 한다는 소리이고, k개의 비트를 n개에 하나하나씩 넣으면 된다. n^k가 정답 

 

그런데 그냥 n^k를 하는 것이 아니라 

 

ll ipow(ll x, ll p){
	ll ret = 1, piv = x;
	while(p){
		if(p & 1) ret = ret * piv % m;
		piv = piv * piv % m;
		p >>= 1;
	}
	return ret;
}

 

 

몰래 가져온 Green55님 코드 

 

딱 봤을 때는 저게 뭐하는 코드인가 했는데 보니깐 pow를 하나하나 하는 것 보다 훨씬 빠르게 한다. logn의 속도로 하는 것 같다. 

 

항상 뭔가를 배운다. 존경 

 

C

 

이거는 윌슨 정리를 이용한다고 하는데 정리부터 무서운 기호들로 둘러쌓여 있어서 좀 공부를 해봐야겠다. 

 

 

 

정말 오랜만에 업솔빙을 했다. 기분이 상쾌