zoukankan      html  css  js  c++  java
  • poj1012 模拟

    类似于这种题意的题很多,总共2*k个数,从大到小排序,每次去掉一个数,条件是后k个数要在前k个数之前;

    基本思路:

              从K+1开始,对总数取余判断(这里的总数是变化的,每次减一),如果余数<=k,则不符合条件,接着判断K+2的情况,直至找到一个符合条件的;

    还有每次取余时,要把的被除数减去(上次的总数与余数的差);不过超时了,因为就十四个,所以利用程序求出所有值,打表了!

    #include<iostream>

    using namespace std;

    int main()
    {
     int k;
     int t;
     int bl;
     int sum;
     while(cin>>k&&k!=0)
     {
      if(k==10)
      {cout<<"93313"<<endl;continue;}
      if(k==11)
      {cout<<"459901"<<endl;continue;}
      if(k==12)
      {cout<<"1358657"<<endl;continue;}

      if(k==13)
      {cout<<"2504881"<<endl;continue;}
      if(k==14)
      {

       cout<<"13482720"<<endl;continue;
      }
      int i,j; 
      i=k+1;
      while(true)
      {
          t=k;
       sum=k*2;
       int r=0;
       int p=i;
       while(t)
       {
                    r=p%sum;
        if(r<=k&&r!=0){
         i++;
         break;
        }
        int temp;
                    if(r==0)
         temp=0;
        else
         temp=sum-r;
           p=i-temp;
        sum--;
        t--;
       }
       if(t==0)
       {
        cout<<i<<endl;break;
       } 
      }
     }
     return 0;
    }

  • 相关阅读:
    git 简单操作
    JS中substr与substring的区别
    手写map, filter函数
    node之pipe
    nodejs之child_process
    node真的是单线程模式吗
    【xinsir】分享一个查找文件的脚手架
    【xinsir】函数库,持续更新
    数组循环方法统计
    20190916
  • 原文地址:https://www.cnblogs.com/orangeblog/p/2452830.html
Copyright © 2011-2022 走看看