生活随笔
收集整理的這篇文章主要介紹了
Acwing第 31 场周赛【完结】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
目錄
- 4200. 簡單問題【水題】
- 4201. 01數【爆搜】
- 4202. 穿過圓【思維+bitset】
4200. 簡單問題【水題】
https://www.acwing.com/problem/content/4203/
#include<bits/stdc++.h>
using namespace std
;
const int N
=1e5+10;
int a
[N
];
int main(void)
{for(int i
=0;i
<6;i
++) cin
>>a
[i
];int cnt
=0;for(int i
=0;i
<1e5;i
++){if(i
>=a
[4]&&i
<=a
[5]){bool flag
=true;for(int j
=0;j
<4;j
++) if(i
>=a
[j
]) flag
=false;if(flag
) cnt
++;}}cout
<<cnt
;return 0;
}
4201. 01數【爆搜】
https://www.acwing.com/problem/content/4204/
#include<bits/stdc++.h>
using namespace std
;
typedef long long int LL
;
LL n
,cnt
;
void dfs(LL sum
)
{if(sum
>n
) return;cnt
++;dfs(sum
*10+1);dfs(sum
*10+0);
}
int main(void)
{cin
>>n
;dfs(1);cout
<<cnt
<<endl
;
}
4202. 穿過圓【思維+bitset】
https://www.acwing.com/problem/content/description/4205/
遍歷n個點,每個點對m個圓有在圓內和圓外兩個狀態,園內表示0,圓外表示1,把狀態用二進制存儲下來
如果a點,b點兩個點,a在圓內b在圓外,或者a在圓外b在圓內,那么這個圓是一定需要穿過的
從a點到b點最少需要穿過的圓數等于,兩個狀態的異或后的1的數量
#include<bits/stdc++.h>
using namespace std
;
#define x first
#define y second
const int N
=1e3+10;
typedef long long int LL
;
typedef pair
<LL
,LL
> PII
;
PII a
[N
],c
[N
];
LL n
,m
,k
,r
[N
];
bitset
<N
>st
[N
];
bool check(int i
,int j
)
{LL len
=(a
[i
].x
-c
[j
].x
)*(a
[i
].x
-c
[j
].x
)+(a
[i
].y
-c
[j
].y
)*(a
[i
].y
-c
[j
].y
);if(len
>r
[j
]*r
[j
]) return 1;else return 0;
}
int main(void)
{cin
>>n
>>m
>>k
;for(int i
=0;i
<n
;i
++) cin
>>a
[i
].x
>>a
[i
].y
;for(int i
=0;i
<m
;i
++) cin
>>r
[i
]>>c
[i
].x
>>c
[i
].y
;for(int i
=0;i
<n
;i
++){for(int j
=0;j
<m
;j
++){st
[i
][j
]=check(i
,j
);}}while(k
--){int x
,y
; cin
>>x
>>y
;cout
<<(st
[x
-1]^st
[y
-1]).count()<<endl
;}return 0;
}
總結
以上是生活随笔為你收集整理的Acwing第 31 场周赛【完结】的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。