Codeforces Round #767 (Div. 2) ABCD题解
Posted ZZXzzx0_0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Round #767 (Div. 2) ABCD题解相关的知识,希望对你有一定的参考价值。
A. Download More RAM
思路:
签
到
题
签到题
签到题
按
照
a
从
小
到
大
排
序
按照a从小到大排序
按照a从小到大排序
只
要
k
>
=
a
,
就
+
=
对
应
的
b
只要k>=a,就+=对应的b
只要k>=a,就+=对应的b
输
出
k
即
可
输出k即可
输出k即可
时间复杂度:
O
n
l
o
g
n
Onlogn
Onlogn
#include <bits/stdc++.h>
#define fer(i,a,b) for(re i = a ; i <= b ; ++ i)
#define der(i,a,b) for(re i = a ; i >= b ; -- i)
#define cf int _; cin>> _; while(_--)
#define all(x) (x).begin(),(x).end()
#define sz(x) ((int)(x).size())
#define sf(x) scanf("%lld",&x)
#define pll pair<int,int>
#define re register int
#define lb lower_bound
#define up upper_bound
#define int long long
#define pb push_back
#define y second
#define x first
using namespace std;
inline void sf2(int &a , int &b) sf(a) , sf(b) ;
inline void sf3(int n , int a[]) fer(i,1,n) sf(a[i]); ;
inline void de(auto x) cout << x << "\\n" ;
inline void de2(auto a , auto b) cout << a << " " << b << "\\n" ;
inline void de3(int n , auto a[])fer(i,1,n) cout << a[i] << " " ;puts("");
inline void mo(int &a , int b) a = (a % b + b) % b ;
inline int gcd(int a,int b)return b ? gcd(b , a % b) : a ;
inline int qpow(int a,int b,int c)int res=1%c;a%=c;while(b>0)if(b&1)res=res*a%c;a=a*a%c;b>>=1;return res;
inline int qadd(int a,int b,int c)int res=0;a%=c;while(b>0)if(b&1)res=(res+a)%c;a=(a+a)%c;b>>=1;return res;
const int inf = 0x3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f ;
const int N = 1e6 + 10 , M = 3010 , mod = 1e9 + 7 ;
const double eps = 1e-7 , pi = acos(-1.0) ;
int n , k ;
struct ai
int a , b ;
q[N] ;
bool cmp(ai x , ai y)
return x.a < y.a ;
signed main()
cf
cin >> n >> k ;
fer(i,1,n) sf(q[i].a) ;
fer(i,1,n) sf(q[i].b) ;
sort(q + 1 , q + 1 + n , cmp) ;
fer(i,1,n)
if(k >= q[i].a)
k += q[i].b ;
de(k) ;
return 0;
B. GCD Arrays
思路:
读
完
题
目
第
一
个
想
到
的
就
是
g
c
d
(
x
,
x
+
1
)
=
1
读完题目第一个想到的就是gcd(x,x+1)=1
读完题目第一个想到的就是gcd(x,x+1)=1
显
然
这
个
性
质
不
是
特
别
关
键
显然这个性质不是特别关键
显然这个性质不是特别关键
在
仔
细
想
想
,
只
要
可
能
的
g
c
d
>
1
即
可
在仔细想想,只要可能的gcd>1即可
在仔细想想,只要可能的gcd>1即可
2
又
是
除
1
之
外
,
[
l
,
r
]
中
因
数
最
多
的
一
个
数
2又是除1之外,[l,r]中因数最多的一个数
2又是除1之外,[l,r]中因数最多的一个数
所
以
g
c
d
>
1
,
具
体
是
多
少
,
操
作
数
最
小
的
一
定
是
2
所以gcd>1,具体是多少,操作数最小的一定是2
所以gcd>1,具体是多少,操作数最小的一定是2
那
么
统
计
一
下
[
l
,
r
]
中
有
多
少
个
奇
数
那么统计一下[l,r]中有多少个奇数
那么统计一下[l,r]中有多少个奇数
奇
数
是
一
定
要
和
另
外
一
个
偶
数
乘
起
来
奇数是一定要和另外一个偶数乘起来
奇数是一定要和另外一个偶数乘起来
所
以
如
果
奇
数
小
于
等
于
k
,
输
出
Y
E
S
所以如果奇数小于等于k,输出YES
所以如果奇数小于等于k,输出YES
在
特
殊
判
断
一
下
a
=
b
,
并
且
a
!
=
1
的
情
况
在特殊判断一下a=b,并且a!=1的情况
在特殊判断一下a=b,并且a!=1的情况
因
为
g
c
d
(
a
,
a
)
=
a
[
a
!
=
1
]
因为gcd(a,a) = a [ a != 1]
因为gcd(a,a)=a[a!=1]
这
种
情
况
也
是
Y
E
S
这种情况也是YES
这种情况也是YES
时间复杂度:
O
t
Ot
Ot
#include <bits/stdc++.h>
#define fer(i,a,b) for(re i = a ; i <= b ; ++ i)
#define der(i,a,b) for(re i = a ; i >= b ; -- i)
#define cf int _; cin>> _; while(_--)
#define all(x) (x).begin(),(x).end()
#define sz(x) ((int)(x).size())
#define sf(x) scanf("%lld",&x)
#define pll pair<int,int>
#define re register int
#define lb lower_bound
#define up upper_bound
#define int long long
#define pb push_back
#define y second
#define x first
using namespace std;
inline void sf2(int &a , int &b) sf(a) , sf(b) ;
inline void sf3(int n , int a[]) fer(i,1,n) sf(a[i]); ;
inline void de(auto x) cout << x << "\\n" ;
inline void de2(auto a , auto b) cout << a << " " << b << "\\n" ;
inline void de3(int n , auto a[])fer(i,1,n) cout << a[i] << " " ;puts("");
inline void mo(int &a , int b) a = (a % b + b) % b ;
inline int gcd(int a,int b)return b ? gcd(b , a % b) : a ;
inline int qpow(int a,int b,int c)int res=1%c;a%=c;while(b>0)if(b&1)res=res*a%c;a=a*a%c;b>>=1;return res;
inline int qadd(int a,int b,int c)int res=0;a%=c;while(b>0)if(b&1)res=(res+a)%c;a=(a+a)%c;b>>=1;return res;
const int inf = 0x3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f3f ;
const int N = 1e6 + 10 , M = 3010 , mod = 1e9 + 7 ;
const double eps = 1e-7 , pi = acos(-1.0) ;
int get(int x) // 返回1-x中有多少个奇数
return (x + 1) / 2 ;
signed main()
cf
int a , b 以上是关于Codeforces Round #767 (Div. 2) ABCD题解的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #767 (Div. 2) A ~ D
Codeforces Round #767 (Div. 2) ABCD题解
Codeforces Round #767 (Div. 2)(A B C D E F1 F2)
Codeforces Round #436 E. Fire(背包dp+输出路径)