其他分享
首页 > 其他分享> > Atcoder 上分 1000-1400

Atcoder 上分 1000-1400

作者:互联网

现在在刷b,c题, 用于记录
bc 题目标是要刷到5-10分钟 一题
190-B 输出注意大小写. 回车需要注意吗?
189-B 百分比的题目比较的数可以直接乘以100, 注意看值范围 longlong 还是好用的
188-B 使用了一些奇怪的加快写代码速度的方式
187-B 算术的时候需要注意,特别是除法判定的时候是,整数除法是没有小数点的, 所以要用double
186-b 需要修改一下模板
190-c 这题题目要读清楚, 给的k个数据里面是 二选一的, 主要思想还是暴力, 遍历所有情况这里假如k是三 二选一的话可以有8种情况, 只是这里用到了一个技巧就是位掩码, bitmask,这应该属于在特定的场景下,可以用的方法了吧, 唬住我好久(拖了一下午),因为一些01的细节又卡了一会. 现在问题来了,不用这个,用纯暴力遍历,我感觉好像时间上好像没有区别?

190- C - Bowls and Dishes

#include <bits/stdc++.h>
#define For(i,x,y) for(int i=(x); i<=(y); i++)
#define fori(i,x,y) for(int i=(x); i<(y); i++)
#define rep(i,y,x) for(int i=(y); i>=(x); i--)
#define debug(a) cout << #a << ": " << a << endl
#define FAST ios::sync_with_stdio(false),cin.tie(0), cout.tie(0)
using namespace std;
typedef long long ll;
const int N = 2e5+10;
const int MAX = 1e3+7;
int n,m,k;
vector<vector<int>> vis(MAX, vector<int>(MAX));
vector<int> dish(MAX);
vector<int> a(MAX),b(MAX);
int main(void){
	FAST;
	cin >> n >> m;
	//表示一个有两个状态的数据有很多方法二维数组,两个数组,pair等 
	// pair c++17有auto&[x,y]的奇怪语法 
	vector<int> a(MAX),b(MAX);
	For(i,1,m){ 
		cin >> a[i]>> b[i];
	}
	cin >> k;
	vector<int> c(MAX),d(MAX);
	for(int i=1; i<=k; i++){
		cin >> c[i] >> d[i];
	}
	vector<int> choices(MAX);
	int ans=0;
	for(int bitmasks = 0; bitmasks < (1 << k); bitmasks++){
		for(int j=1; j<=n; j++){
			choices[j]=0;
		}
		for(int j=1; j<=k; j++){
			if((1<<(j-1))&bitmasks) choices[c[j]]++;
			else choices[d[j]]++;
		}
		int ret=0;
		for(int j=1; j<=m; j++){
			if(choices[a[j]]&&choices[b[j]]){
				ret++;
			}
		}
		ans = ans > ret? ans : ret;
	}
	cout << ans;
}

186-b

#include<bits/stdc++.h>
#define FAST ios::sync_with_stdio(false),cin.tie(0), cout.tie(0)
#define ll long long
#define forn0 for(int i=0; i<n; i++)
#define forn1 for(int i=1; i<=n; i++)
const int MAX = 1111;
using namespace std;
int n;
int a[MAX][MAX];
int main(void){
	FAST;
	int h,w ;
	cin >> h >>w ;
	int min=MAX;
	for(int i=1; i<=h; i++){
		for(int j=1; j<=w; j++){
			cin >> a[i][j];
			if(min > a[i][i]) min = a[i][j];
		}
	}
	int sum =0;
	for(int i=1; i<=h; i++){
		for(int j=1; j<=w; j++){
			sum += (a[i][j]-min);
		}
	}
	cout << sum;
}

187-b

#include<bits/stdc++.h>
#define FAST ios::sync_with_stdio(false),cin.tie(0), cout.tie(0)
#define ll longlong
#define forn0 for(int i=0; i<n; i++)
#define forn1 for(int i=1; i<=n; i++)
const int MAX = 111111;
using namespace std;
int n;
double x[MAX],y[MAX];

int main(void){
	cin >> n;
	forn1{
		cin >> x[i] >> y[i];
	}
	int sum =0;
	for(int i=1; i<n; i++){
		for(int j=i+1; j<=n; j++){
			if(abs((y[j]-y[i])/(x[j]-x[i]))<=1) sum++;
		}	
	}
	cout << sum;
}

188-B

#include<bits/stdc++.h>
#define FAST ios::sync_with_stdio(false),cin.tie(0), cout.tie(0)
#define ll longlong
#define forn0 for(int i=0; i<n; i++)
#define forn1 for(int i=1; i<=n; i++)
const int MAX = 111111;
using namespace std;
int a[MAX];
int b[MAX];
int n;
int main(void){
	FAST;
	cin >> n;
	forn0{
		cin >> a[i]; 
	}
	int sum = 0;
	forn0{
		cin >> b[i];
		sum +=a[i]*b[i];
	}
	if(sum==0) cout << "Yes";
	else cout << "No";
} 

189-B

#include<bits/stdc++.h>
#define FAST ios::sync_with_stdio(false),cin.tie(0), cout.tie(0)
using namespace std;

long long  n,x,v,p;
void solve(){
	long long sum = 0; 
	for(int i=1; i<=n; i++){
		cin >> v >> p;
		if((sum+= v*p) > x) {
			cout << i;
			return ;
		}
	}
	cout << "-1";
	return ;
}
int main(void){
	FAST;
	cin >> n >> x;
	x*=100;
	solve();
}

190-B

#include<bits/stdc++.h>
#define FAST ios::sync_with_stdio(false),cin.tie(0), cout.tie(0)
using namespace std;
int n,s,d;

void solve(){
	int flag = 0;
	for(int i=0; i<n; i++){
		int x,y;
		cin >> x >> y;
		if(x>=s || y<=d);
		else flag = 1;
	}
	if(flag) cout << "Yes" ;
	else cout << "No";
	
}
int main(void){
	FAST;
	cin >> n >> s >> d;
	solve();
}

标签:Atcoder,cout,int,MAX,cin,FAST,上分,1400,define
来源: https://blog.csdn.net/dylan_sjc/article/details/113598571