首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

宁波市工程学院[1349] 刺儿扎痛虎屁股 根据公式放刺,求1-n哪个洞放的刺最多

2013-03-04 
宁波工程学院[1349] 刺儿扎痛虎屁股根据公式放刺,求1-n哪个洞放的刺最多http://ac.nbutoj.com/Problem/vie

宁波工程学院[1349] 刺儿扎痛虎屁股 根据公式放刺,求1-n哪个洞放的刺最多

  • http://ac.nbutoj.com/Problem/view.xhtml?id=1349
    [1349] 刺儿扎痛虎屁股
  • 时间限制: 1000 ms 内存限制: 65535 K
  • 问题描述
  • 兔子挖了很多洞, 老虎嫌弃一个一个找过去太麻烦了, 最终老虎决定坐平每一个洞.
    兔子一共挖了N个洞并将洞从1到N编号,
    现在兔子有K根刺, 兔子先在第一个洞放一根刺.
    然后兔子往后数(K0 + 2) * N0个, N0为当前编号, K0为手上还剩余的刺的数目
    如果数到最后一个的话, 兔子就从头再开始数.
    当兔子放完所有的刺的时候, 在有刺的洞里面最多的有几根.
  • 输入
  • 本题有多组输入, 对于每组数据.
    输入一行, 输入 N, K. (0 < N < 50000, 0 < K < 50000), N表示洞的个数, K表示兔子起初手上的刺的个数.
  • 输出
  • 对于每组输入, 输出洞中刺最多的数目.
  • 样例输入
  • 2 110 210 5
  • 样例输出
  • 112
  • 提示
  • 来源
  • monkeyde17
    思路:
      step  pos#include<stdio.h>#include<string.h>int a[55000];int main(){int pos,n,k,mmax,rem,step;//long long pp;while(scanf("%d %d",&n,&k)!=EOF){     pos=1;mmax=1; memset(a,0,sizeof(a)); a[1]=1; k=k-1; while(k>0) {              pos=((__int64)(pos+pos*(k+2)))%n;  if(pos==0)  {  break;  }    a[pos]++;  if(a[pos]>mmax)  mmax=a[pos];   k--; }         a[n]+=k;         if(a[n]>mmax)  mmax=a[n]; printf("%d\n",mmax);}return 0;}


     

  • 热点排行