• zoj 4056


    • At 0 second, the LED light is initially off. After BaoBao presses the button 2 times, the LED light turns on and the value of the counter changes to 1. The value of the timer is also set to 2.5 seconds. After DreamGrid presses the button 1 time, the value of the counter changes to 2.

    • At 2.5 seconds, the timer counts down to 0 and the LED light is off.

    • At 5 seconds, after DreamGrid presses the button 1 time, the LED light is on, and the value of the timer is set to 2.5 seconds.

    • At 7.5 seconds, the timer counts down to 0 and the LED light is off.

    • At 8 seconds, after BaoBao presses the button 2 times, the LED light is on, the value of the counter changes to 3, and the value of the timer is set to 2.5 seconds.

    • At 10 seconds, after DreamGrid presses the button 1 time, the value of the counter changes to 4, and the value of the timer is changed from 0.5 seconds to 2.5 seconds.

    • At 12.5 seconds, the timer counts down to 0 and the LED light is off.

    • At 15 seconds, after DreamGrid presses the button 1 time, the LED light is on, and the value of the timer is set to 2.5 seconds.

    • At 16 seconds, after BaoBao presses the button 2 times, the value of the counter changes to 6, and the value of the timer is changed from 1.5 seconds to 2.5 seconds.

    • At 18 seconds, the game ends.

    只要遇到a,c的倍数就会按b,d次按钮,若同是a,c的倍数,先a,后c
    若按之前为暗,按一次变亮,若按之前为亮,按一次为计数器+1
    每次按一下,都会让计时器重新设置为v+0.5(开始倒计时,时间到0,就会变暗)
    问[0,t]的时间内,计数器最后为多少。(0为任意数的倍数)

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <algorithm>
     4 #include <cstring>
     5 #include <string>
     6 #include <cmath>
     7 using  namespace std;
     8 #define ll long long
     9 int T;
    10 ll a,b,c,d,v,t;
    11 ll gcd(ll a,ll b)
    12 {
    13     return b==0?a:gcd(b,a%b);
    14 }
    15 ll lcm(ll a,ll b)
    16 {
    17     return a*b/gcd(a,b);
    18 }
    19 ll x,y,z,cnt,ans,last;
    20 /*
    21 明显一个最小公倍数为一个周期
    22 0 :单独算
    23 再计算除一个周期的结果*周期数
    24 再加上不满一个周期的结果
    25 */
    26 int  main()
    27 {
    28     scanf("%d",&T);
    29     while(T--){
    30     scanf("%lld%lld%lld%lld%lld%lld",&a,&b,&c,&d,&v,&t);
    31     ans=b+d-1;
    32     x=0,y=0,last=0,cnt=0;//ans 不用再赋初值了
    33     /*
    34     
    35     */
    36     z=lcm(a,c);//(a,c) 不是(x,y)
    37     while(x<z||y<z){
    38         if(x+a<=y+c){
    39             x+=a;
    40             if(x<=last+v) cnt++;
    41             cnt+=b-1;
    42             last=x;
    43         }
    44         else{
    45             y+=c;
    46             if(y<=last+v) cnt++;
    47             cnt+=d-1;
    48             last=y;
    49         }
    50         
    51     }
    52     ans+=cnt*(t/z);//cnt为一个周期的结果
    53     t%=z;
    54     x=0,y=0,last=0;
    55     while(x+a<=t||y+c<=t){//保证在t的范围内
    56         if(x+a<=y+c){
    57             x+=a;
    58             if(x<=last+v) ans++;
    59             ans+=b-1;
    60             last=x;
    61         }
    62         else{
    63             y+=c;
    64             if(y<=last+v) ans++;
    65             ans+=d-1;
    66             last=y;
    67         }
    68     }
    69     printf("%lld
    ",ans);
    70     }
    71     return  0;
    72 }
  • 相关阅读:
    短信平台接口调用方法参考
    C#部分类与部分方法
    Oracle表字段类型更改的一个经验
    ueditor的上传文件漏洞(c#)
    判断一个文件是否是指定后缀名的文件
    利用FluorineFx的ByteArray上传图片
    FluorineFx 播放FLV 时堆棧溢出解决 FluorineFx NetStream.play 并发时,无法全部连接成功的解决办法
    Flex数据交互之Remoting[转]
    fluorinefx使用手册
    SharedObject使用:在FluorineFx.net与Flex中使用共享对象维护在线用户列表实例【转】
  • 原文地址:https://www.cnblogs.com/tingtin/p/9667078.html
Copyright © 2020-2023  润新知