747 div2
传送门 : https://codeforces.com/contest/1594
A.
直接秒 考虑一下特判即可
B.
转换成进制 直接模拟
C.
分类出一个结论 0,1,2
D:
2-SAT || 并查集 || DFS
2-SAT :
- 洛谷模板 传送门 : https://www.luogu.com.cn/problem/P4782
E1. 简单组合问题 通过快速幂求解
- 或者通过 欧拉降幂
748 div3
传送门 : https://codeforces.com/contest/1593
A.
分类讨论 + minn(恶心死我了)
B.
打表,结论,规律
一开始以为是打表然后string 比较,结果记事本暴了,然后看了1000的表发现只有
00,50,75,25结尾
C.
贪心 从后往前 (这才是A题? )
D1.
对于 每个值对最小值的差求 gcd 就是答案
D2.
贪心+ 暴力
E.
一开始想中心根,然后计算深度 结果不出意外的WA了
最后老老实实走拓扑
750 div2
前言
传送门 :
下午6点的场 , 正好自习完,做的时候算是给我整吐了 ,WA 风了
尤其是一开始题目还出错,算是把我心态搞没了
A
答案只有 0 , 1 0,1 0,1 , 不过 0 0 0的情况不只有 a = = b = = c a==b==c a==b==c 因此我先入为主
搞得我后面分类讨论了很久
void solve()
{
int a,b,c;
cin>>a>>b>>c;
int sum = 0 ;
sum = a+b*2+c*3;
if(sum &1 )
cout<<1<<endl;
else
cout<<0<<endl;
}
B.
我去 原来是 tm 的 二进制没开 i n t int int
cout<<z1*(( (int)1<<z2 )-1) + z1<<endl;
或者是
1ll<<z2
ED 116 DIV2
前言 :
A.
找规律,相差最多为1,修改首尾即可
B.
WA了好多次的原因是因为 ans 没有 +1(也就是没有加第一个节点)
画图之后不难发现,每次都是 X2的 倍增 因此我们可以先处理出来 X2的
然后再计算剩下的
CODE
void solve()
{
ll ans = 1;
ll n,k;
cin>>n>>k;
ll l = 0 ;
ll sum = 1;
while(ans < k)
{
sum+= ans;
ans*=2;
l++;
}
if(sum >= n)
{
cout<<l<<endl;
}
else
{
if((n-sum)%k == 0)
cout<<l + (n-sum)/k<<endl;
else
cout<<l + (n-sum)/k+1<<endl;
//cout<<l+ (n - sum - 1)/k +1<<endl;
}
}