JZOJ 5376. 【NOIP2017提高A组模拟9.19】Candy
2017-09-20 21:13
645 查看
Description
Input
Output
Sample Input
22 2 2
4 6 8
Sample Output
-11
Data Constraint
Solution
显然,这三个数在变换中只会越来越接近彼此(即差值越来越小)。那么设开始时三个数分别为 a,b,c(a<b<c) ,那么差值为:x=b−a,y=c−b
当 x 或 y 其中一个为奇数,说明 a,b,c 中出现了奇数,则退出循环。
由于差值的变化都是每次除以 2 ,所以每次将 x,y 都除以 2 ,直到有奇数。
这样每有一个 2 因子,则可以“分享”一次,且最多不会超过 logN 次。
Code
#include<cstdio> #include<algorithm> using namespace std; inline long long read() { long long X=0,w=1; char ch=0; while(ch<'0' || ch>'9') {if(ch=='-') w=-1;ch=getchar();} while(ch>='0' && ch<='9') X=(X<<3)+(X<<1)+ch-'0',ch=getchar(); return X*w; } int main() { int T=read(); while(T--) { long long a=read(),b=read(),c=read(),ans=0; if(a==b && b==c) { printf("-1\n"); continue; } if(a&1) { printf("0\n"); continue; } if(a>b) swap(a,b); if(a>c) swap(a,c); if(b>c) swap(b,c); long long x=b-a,y=c-b; for(int i=0;i<65;i++) { if(x&1 || y&1) { printf("%d\n",i); break; } x>>=1; y>>=1; } } return 0; }
相关文章推荐
- JZOJ5377. 【NOIP2017提高A组模拟9.19】开拓 DP
- JZOJ 5377. 【NOIP2017提高A组模拟9.19】开拓
- JZOJ 5378. 【NOIP2017提高A组模拟9.19】闷声刷大题(60分)
- 【JZOJ 5377】【NOIP2017提高A组模拟9.19】开拓
- jzoj5335 【NOIP2017提高A组模拟8.24】早苗 (递推优化矩乘)
- jzoj5399 【NOIP2017提高A组模拟10.7】Confess
- JZOJ 5406. 【NOIP2017提高A组模拟10.10】Tree
- JZOJ 5185. 【NOIP2017提高组模拟6.30】tty's sequence
- JZOJ100042. 【NOIP2017提高A组模拟7.12】保留道路
- 【jzoj5359】【NOIP2017提高A组模拟9.12】【Arrays and Palindrome】
- JZOJ 100046. 【NOIP2017提高A组模拟7.14】收集卡片
- JZOJ5373. 【NOIP2017提高A组模拟9.17】信仰是为了虚无之人
- 【JZOJ4928】【NOIP2017提高组模拟12.18】A
- JZOJ 5389. 【NOIP2017提高A组模拟9.26】解梦
- JZOJ 5305. 【NOIP2017提高A组模拟8.18】C (Standard IO)
- JZOJ 5329. 【NOIP2017提高A组模拟8.22】时间机器
- JZOJ 5392. 【NOIP2017提高A组模拟10.5】Lucky Transformation
- 【JZOJ5335】【NOIP2017提高组模拟】早苗(DP、矩阵乘法)
- 【JZOJ5335】【NOIP2017提高A组模拟8.24】早苗
- 【jzoj5247】【NOIP2017提高A组模拟8.10】【计算几何】【二分答案】