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