Acwing第 31 场周赛完结

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Acwing第 31 场周赛完结相关的知识,希望对你有一定的参考价值。

目录

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 场周赛完结的主要内容,如果未能解决你的问题,请参考以下文章

Acwing第 36 场周赛完结

Acwing第 56 场周赛完结

Acwing第 32 场周赛完结

Acwing第 59 场周赛完结

Acwing第 35 场周赛完结

Acwing第 57 场周赛未完结