2322. capacitor

(File IO): input:capacitor.in output:capacitor.out

题目描述

输入

输出

样例输入

样例输出

数据范围限制

Solution

注意这句话

温暖了这道题目~

首先我要解释一下并联和串联的意义:

将$\frac ab$与1串联

$\mathsf{\frac {1}{\frac ba + \frac 11}}$

$=\frac{1}{\frac{a+b}{a}}$

$=\frac{a}{a+b}$

将$\frac ab$与1并联

$ \frac ab + 1$

$=\frac {a+b} {a} $

所以,经过一次操作后,实际上只是把分子加上了分母或者是把分母加上了分子!

接下来

对于任何一个分数$\frac ab$,首先将其化成最简分数(约分),再提取整数部分,最后再代回$\frac ab$

倒过来推导之前的过程:将a,b中大的数减去小的数,直到两者皆为1

于是,我竟然有4个点时间超限了!

(下了个数据)

  1.  
  2. …………

某个数据的一部分

好厉(wei)害(suo)!

再优化

我优化了两个地方:

求gcd使用二进制法以及卡常(可无视)

以及

减少相减循环的次数

当a,b反复相减时,总有一个数会先变成1(假设是a),然后b又要执行b次运算,每次仅仅是把b-=1,ans++……这个地方一定可以优化!

直接在a,b有一者减成1时跳出循环(假设是a)

本来还有b次循环,那么这时的答案就会比正确答案少b

所以,最后再把ans+=a*b即可

(上面的式子对a=1或b=1都适用)

Code

  1. #include<iostream>
  2. #include<cstdio>
  3. using namespace std;
  4. long long a,b,ans,t,g,n;
  5. long long gcd(long long a,long long b)
  6. {
  7. if(!b) return a;
  8. if(!(a|)&&!(b|)) return *gcd(a>>,b>>);
  9. if((!(a|))&&(b|)) return gcd(a,b>>);
  10. if(!(a|)&&!(b|)) return gcd(a>>,b);
  11. return gcd(b,a%b);
  12. }
  13. int main()
  14. {
  15. // freopen("capacitor.in","r",stdin);
  16. // freopen("capacitor.out","w",stdout);
  17. cin>>t;
  18. while(t--)
  19. {
  20. scanf("%lld%lld",&a,&b);
  21. ans=;
  22. g=gcd(a,b);
  23. a/=g;b/=g;
  24. n=a/b;
  25. if(a>b) swap(a,b);
  26. while(a!=&&b!=)
  27. {
  28. ans++;
  29. b-=a;
  30. if(a>b) swap(a,b);//a<b
  31. }
  32. cout<<ans+a*b<<endl;
  33. }
  34. return ;
  35. }

End

这道题我会,还是WA了!!!

今天又是爆0的一天啊……

纪中17日T2 2322. capacitor的更多相关文章

  1. 纪中17日T1 2321. 方程

    纪中17日T1 2321. 方程 (File IO): input:cti.in output:cti.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制   Goto ...

  2. 纪中5日T2 1565. 神秘山庄

    1565. 神秘山庄 (Standard IO) 原题 题目描述 翠亨村是一个神秘的山庄,并不是因为它孕育了伟人孙中山,更神秘的是山庄里有N只鬼.M只兔子,当然还有你.其中每秒钟: 1. 恰有两个生物 ...

  3. 纪中21日T3 2118. 【2016-12-30普及组模拟】最大公约数

    纪中21日T3 2118. 最大公约数 (File IO): input:gcd.in output:gcd.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制 Goto ...

  4. 纪中10日T1 2313. 动态仙人掌

    纪中10日 2313. 动态仙人掌 (File IO): input:dinosaur.in output:dinosaur.out 时间限制: 1500 ms  空间限制: 524288 KB  具 ...

  5. 纪中23日c组T2 2159. 【2017.7.11普及】max 洛谷P1249 最大乘积

    纪中2159. max 洛谷P1249 最大乘积 说明:这两题基本完全相同,故放在一起写题解 纪中2159. max (File IO): input:max.in output:max.out 时间 ...

  6. 纪中23日c组T3 2161. 【2017.7.11普及】围攻 斐波那契数列

    2161. 围攻 (File IO): input:siege.in output:siege.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制   Goto Prob ...

  7. 洛谷P1880 [NOI1995]石子合并 纪中21日c组T4 2119. 【2016-12-30普及组模拟】环状石子归并

    洛谷P1880 石子合并 纪中2119. 环状石子归并 洛谷传送门 题目描述1 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石 ...

  8. 纪中21日c组T2 2117. 【2016-12-30普及组模拟】台风

    2117. 台风 (File IO): input:storm.in output:storm.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制 Goto Proble ...

  9. 纪中20日c组T2 2122. 【2016-12-31普及组模拟】幸运票

    2122. 幸运票 (File IO): input:tickets.in output:tickets.out 时间限制: 1000 ms  空间限制: 262144 KB  具体限制 Goto P ...

随机推荐

  1. 脚本、脚本语言、shell脚本

    脚本是批处理文件的延伸,是一种纯文本保存的程序,一般来说的计算机脚本程序是确定的一系列控制计算机进行运算操作动作的组合,在其中可以实现一定的逻辑分支等.脚本程序相对一般程序开发来说比较接近自然语言,可 ...

  2. java12类的无参方法

    package com.jh.test01; public class AutoLion { // 属性: 颜色 黄色 String color = "黄色"; // 函数:跑,叫 ...

  3. (七)mybatis批量操作,分页插件

    首先使用方式很简单: SqlSession sqlSession = sessionFactory.openSession(ExecutorType.BATCH); 批量操作核心:改变执行sql的方式 ...

  4. 题解 SDOI2010 【栗栗的书架】

    \[ Preface \] 看到这题洛谷标签有 主席树 ,还以为是什么二维主席树的玄学做法(雾 \[ Description \] 给出一个 \(R×C\) 的矩阵. 一共 \(m\) 次询问,每次询 ...

  5. 基于 Serverless Component 全栈解决方案

    什么是 Serverless Component Serverless Component 是 Serverless Framework 的,支持多个云资源编排和组织的场景化解决方案. Serverl ...

  6. Go语言实现:【剑指offer】翻转单词顺序列

    该题目来源于牛客网<剑指offer>专题. 例如,"student. a am I",正确的句子应该是"I am a student." Go语言实 ...

  7. Linux 查看磁盘容量、查找大文件、查找大目录

    Linux 查看磁盘容量.查找大文件.查找大目录 磁盘统计 查看磁盘使用情况 df -h 文件统计 查找/home 目录下大于800M的文件 find /home -type f -size +800 ...

  8. [redis读书笔记] 第二部分 sentinel

    1.sentinel的初始化,会制定master的IP和port,然后sentinel会创建向被监视主服务器的命令连接和订阅连接: -  命令连接是用来和主服务器之间进行命令通信的 - 订阅连接,用于 ...

  9. 02_TypeScript数据类型

    typescript中为了使编写的代码更规范,更有利于维护,增加了类型校验,写ts代码必须指定类型.   1.布尔类型(boolean) var flag:boolean = true;   2.数字 ...

  10. STM32,ARM,Keil工具相关

    One ELF Section per Function https://blog.csdn.net/iceiilin/article/details/6091575 因此,可以得出,选项One EL ...