17 条题解

  • 17
    @ 2023-8-12 18:42:44

    啊这这这这这这……我第一眼看到这道题的时候直接退出了,我以为我进到了三星题单…… 话不多说,上思路!

    点我解锁思路

    恭喜你!!迈出了成功的第一步!!!告诉你,这是一道水题道题的做法需要贪心。话不多说,上代码!!!

    点我解锁代码

    恭喜你!!!又迈出了一步!!!给你代码!!!

    #include<bits/stdc++ h> //黄钰轩 (幻想一笑而过) 
    using namespace std;
    int m,k,ans,a;
    int main()
    {
        cin>>m>>k;
        while(m){
            m--;
            a++;
            ans++;
            if(a==k){
                m++;
                a=0;
            }
        }
        cout<<ans;
        return 0;
    }
    

    快去试试吧!

    警告!!警告!!陷阱!!! 恭喜你!!!点开了陷阱!!! 刚才的代码…… 编译错误!!!
    点击解锁AC代码
    #include<bits/stdc++.h>//黄钰轩 (幻想一笑而过) 
    int m,k,ans,a;
    int main(){
        cin>>m>>k;
        while(m){
            m--;
            a++;
            ans++;
            if(a==k){
                m++;
                a=0;
            }
        }
        cout<<ans;
        return 0;
    }
    

    刷题很快乐,题解不容易。要是没有赞,作着两行泪!!! (如果想知道我的下拉箭头是怎样的,请点赞并在这题的讨论区回复“@青蛙:已点赞”这句话,我将为大家演示!!!)

  • 4
    @ 2023-9-30 9:56:02

    硬模拟即可

    #include <bits/stdc++.h>
    using namespace std;
    int ans, day;
    int main()
    {
        int m, k;
        cin >> m >> k;
        while(m > 0)
        {
            m--;
            ans++;
            day++;
            if (ans == k)
            {
                m++;
                ans = 0;
            }
        }
        cout << day;
        return 0;
    }
    
    • 2
      @ 2022-10-28 21:51:03

      纯粹的模拟题,甚至连优化都不用

      #include<bits/stdc++.h>
      using namespace std;
      int m,k,ans,a;
      // ans为总天数,a为目前累计的积分
      int main(){
          cin>>m>>k;
          while(m){
              m--;
              a++;
              ans++;
              if(a==k){
                  m++;
                  a=0;
              }
          }
          cout<<ans;
          return 0;
      }
      
      • 2
        @ 2022-7-2 15:08:52

        优化使我快乐!

        这题的模拟很容易就可以被我们写出。

        一般的思路都是一天一天模拟,但如果我们换一种思路呢?

        我们不妨每次将 mkm - k ,如果这时的 m>=0m >= 0 那么就说明禾木可以领取 11 元了,否则就不能领取,循环退出。

        AC 代码( 最长时间:1ms 总:5ms ):

        #include <cstdio>
        using namespace std;
        
        int k , m , day;
        
        int main(void){
        	scanf("%d%d" , &m , &k);
        	while(m > 0){
        		m -= k;
        		if(m >= 0){
        			m++;
        			day += k;
        		}
        		else
        			day += m + k;
        	}
        	printf("%d\n" , day);
        }
        

        然而我并不满意,这时我们很容易即可想到,我们可不可以一次用去 xkxk 天呢?

        答案是可以的。我们将 AC 代码稍加修改。

        AC 代码( 最长时间:0ms 总时间:4ms ):

        #include <cstdio>
        using namespace std;
        
        int k , m , day;
        
        int main(void){
        	scanf("%d%d" , &m , &k);
        	while(true){
        		int x = m / k;
        		if(x == 0){
        			printf("%d\n" , day + m);
        			return 0;
        		}
        		m -= k * x - x;
        		day += k * x;
        	}
        } 
        

        附:极简代码:

        #include <cstdio>
        int k,m,day,x;//提示:被看这个代码,眼会虾
        int main(void){
        	for(std::scanf("%d%d",&m,&k);;m-=(k-1)*x,day+=k*x){
        		x=m/k;
        		if(!x){std::printf("%d",day+m);break;}
        	}
        } 
        
        • 1
          @ 2022-5-2 12:59:32
          #include <bits/stdc++.h>
          using namespace std;
          int main()
          {
              //思路:很很很很很纯粹的模拟
              //两种解法:一天一天模拟\每k天一模拟 这里用第二种(第一种已经有人写了)
          
              int m,k,t = 0; //t是答案
              cin >> m >> k;
              while(true) //在里面加break就行
              {
                  if(m >= k) //如果正好够消费的
                  {
                      m -= k;//这里其实可以化简,但我太懒了😁
                      m ++;
                      t += k;//因为每天只用1元,所以不用做——————的计算
                  }
                  else  //手机“临终”前(要拨打10086)的计算
                  {
                      t += m;
                      break;
                  }
              }
              cout << t;
              return 0;
          }
          
          • @ 2022-5-6 22:35:07

            我会使用python脚本调取网页日志比对每个人提交的代码,有抄袭会取消成绩~

        • 0
          @ 2023-9-24 19:12:35

          关于连循环都不用的题解!!!!!!

          非常简单!!!!!!

          已AC

          #include<bits/stdc++.h>
          using namespace std;
          int main(){
              int a,b;
              cin>>a>>b;
              cout<<a+a/(b-1);
          }
          
          • 0
            @ 2023-9-2 14:50:27

            非常简单 #include<bits/stdc++.h> using namespace std; int x,y,sum,s; int main() { cin>>x>>y; while(x) { x--; s++; sum++; if(s==y) { x++; s=0; } } cout<<sum; return 0; }

            • 0
              @ 2023-2-6 15:26:17

              写题解请注意

              鼓励大家写题解,但注意题解格式。

              题解一定要有思路解析或代码注释,能否让别人理解你的思路

              也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。

              给代码两端加上这个会舒服一些

              ```cpp

              你的代码

              ```

              </span>

              这个点在键盘的左上角tab上面那个键,注意切换输入法

              #include<iostream>
              using namespace std;
              int main()
              {
                  int n;
                  cin>>n;//这是一个注释
                  return 0;
              }
              

              请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

              抄袭题解一经发现直接取消成绩。

              题解被删除的可能

              1. 代码不符合格式规范
              2. 没有思路讲解或者没有注释,
              3. 无意义的题解

              大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。

              • 0
                @ 2022-5-4 17:19:13
                //《来自一个蒟蒻的题解——H0806A》
                //                  ———邬某人
                #include<bits/stdc++.h>//万能头文件,记不住头文件就用ta
                using namespace std;
                
                int main()
                {
                    int m,k,s=0;//定义m、k,和计数变量s(输出的天数)
                    cin>>m>>k;//输入变量
                    for(s=0;m>0;m--,s++)if(s%k==0)m++;//每次循环s+1(天数+1),m-1(钱数-1),如果天数是k的倍数,m+1(因为天数+1=钱数-1,所以天数可以代替钱数判断,且更容易计算)
                    //(for循环可直接减去m,加上s,非常方便,还省行数,所以我用ta:))
                    cout<<--s;//因为for循环多运行了一次,所以要减去
                    return 0;//华丽的收尾
                }
                
                • @ 2022-5-6 22:35:14

                  我会使用python脚本调取网页日志比对每个人提交的代码,有抄袭会取消成绩~

              • -1
                @ 2023-1-17 9:54:54
                #include <bits/stdc++.h>
                using namespace std;
                int m,k,d;
                int main(){   
                    cin>>m>>k;
                    while(m>0){
                        m--;
                        d++;
                        if(d%k==0){
                            m++;
                        }
                    }cout<<d;
                    return 0;
                }
                
                </span>
                • -1
                  @ 2022-10-3 14:48:22

                  就这题还需要优化?初始代码就是1ms(非引战)

                  这道题很简单,模拟就完事了

                  AC代码

                  #include <bits/stdc++.h>
                  using namespace std;
                  int a,k,cnt;
                  int main()
                  {
                     cin >> a >> k;
                     while (a > 0)
                     {
                        a --;
                        cnt ++;
                        if (cnt % k == 0 && cnt != 0)
                        {
                           a ++;
                        }
                     }
                     cout << cnt;
                     return 0;
                  }
                  
                  • -1
                    @ 2022-9-7 20:30:07
                    #include <bits/stdc++.h>
                    using namespace std;
                    int sum;
                    int main()
                    {
                        int m,k;
                        cin >> m >> k;
                        while(m>0)
                        {
                            m--;
                            sum++;
                            if(sum%k==0)m++;
                        }
                        cout<<sum;
                    }
                    //简单到不想打字……
                    
                    </span>
                    • -1
                      @ 2022-8-23 11:02:11

                      不用优化(应该吧)(起码这道题不用)

                      while (m--)//模拟
                      {
                          ans++;
                          x++;
                          if (x==k)
                          {
                              x=0;
                              m++;
                          }
                      }
                      
                      • -1
                        @ 2022-8-17 12:58:13

                        #include <iostream>

                        using namespace std; int m,k,a=0,aa=0; int main() { cin>>m>>k; while(m!=0){ m-=1; aa+=1; a+=1; if(aa==k){ aa=0; m+=1; } } cout<<a; return 0; }

                        • -1
                          @ 2022-7-18 21:45:03
                          #include <bits/stdc++.h>
                          using namespace std;
                          int main() {
                          int m, k;//定义m,k
                          cin >> m >> k;//输入m.k
                          int ans = 0;//定义计数器ans
                          while(m > 0) {//使用while循环
                          m--;//m每次减1
                          ans++;//次数加1
                          if (ans % k == 0)
                          m++;//如果ans是k的倍数(过了k次),m加1
                          }
                          cout << ans;//输出ans(次数)
                          return 0;
                          }
                          
                          • -1
                            @ 2022-5-1 16:06:14
                            #include <bits/stdc++.h>
                            using namespace std;
                            int m1 , m2 , k , day;
                            int main()
                            {
                            	cin >> m1 >> k;
                            	while(m1 > 0)
                            	{
                            		m1--;
                            		m2++;
                            		if(k == m2)
                            		{
                            			m1 += 1;
                            			m2 = 0;//这里要归零
                            		}
                            		day++;
                            	}
                            	cout << day;
                            	return 0;
                            }
                            

                            简单模拟一下就行

                            • -3
                              @ 2022-4-24 16:13:40

                              鼓励大家写题解,但注意题解格式。

                              给代码两端加上这个会舒服一些

                              ```cpp

                              你的代码

                              ```

                              </span>

                              这个点在键盘的左上角tab上面那个键,注意切换输入法

                              #include<iostream>
                              using namespace std;
                              int main()
                              {
                                  int n;
                                  cin>>n;//这是一个注释
                                  return 0;
                              } 
                              

                              请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

                              抄袭题解一经发现直接取消成绩。

                              • 1

                              信息

                              ID
                              1337
                              时间
                              1000ms
                              内存
                              128MiB
                              难度
                              3
                              标签
                              递交数
                              686
                              已通过
                              363
                              上传者