cogs 142. [USACO Jan08] iCow播放器 ???

☆   输入文件:icow.in   输出文件:icow.out   简单对比

时间限制:1 s  
内存限制:128 MB

被无止境的农活压榨得筋疲力尽后,Farmer John打算用他在MP3播放器市场
新买的iCow来听些音乐,放松一下。FJ的iCow里存了N(1 <= N <=
1,000)首曲子,按1..N依次编号。至于曲子播放的顺序,则是按一个Farmer John自己设计的算法来决定:

  • 第i首曲子有一个初始权值R_i(1 <= R_i <= 10,000)。
  • 当一首曲子播放完毕,接下来播放的将是所有曲子中权值最大的那首(如果有两首或多首曲子的权值相同,那么这些曲子中编号最小的那首会被选中)。
  • 一首曲子在播放结束后,它的权值会被平均地分给其他N-1首曲子,它本身的权值清零。
  • 如果一首曲子的权值无法被平均分配(也就是说,无法被N-1整除),那么被N-1除的余数部分将会以1为单位,顺次分配给排名靠前的曲子(也就是说,顺序为曲目1、曲目2...依次下去。当然,刚播放过的那首曲子需要被跳过),直到多出的部分被分配完。

在选定的下一首曲子播放完毕后,这个算法再次被执行,调整曲子的权值,并选出再接下来播放的曲目。

请你计算一下,按FJ的算法,最先播放的T(1 <= T <= 1000)首曲子分别是哪些。

程序名: icow

输入格式:

  • 第1行: 2个用空格隔开的整数:N 和 T
  • 第2..N+1行: 第i+1行为1个整数:R_i

输入样例 (icow.in):

3 4
10
8
11

输入说明:

iCow里存了3首曲子,初始权值依次为10,8,11。你的任务是指出它播放的前4首曲子依次是哪些。

输出格式:

  • 第1..T行: 第i行为1个整数,表示iCow播放的第i首曲子

输出样例 (icow.out):

3
1
2
3

输出说明:

每一首曲子播放前,三首曲子的权值分别为:

R_1  R_2  R_3
10    8   11  -> 播放 #3  11/2 = 5, 权值余量 = 1
16   13    0  -> 播放 #1  16/2 = 8
 0   21    8  -> 播放 #2  21/2 = 10, 权值余量 = 1
11    0   18  -> 播放 #3  ...

有什么问题么,过了5个点,请大佬帮忙看一下
 1 #include<iostream>
 2 #include<algorithm>
 3 #include<cmath>
 4 #include<cstdio>
 5
 6 using namespace std;
 7 const int N=1010;
 8
 9 struct node{
10     int me;
11     int w;
12 }E[N];
13
14 inline void read(int &x)
15 {
16     char c=getchar();
17     x=0;
18     while(c<‘0‘||c>‘9‘)c=getchar();
19     while(c>=‘0‘&&c<=‘9‘)x=x*10+c-‘0‘,c=getchar();
20 }
21
22 int main()
23 {
24     freopen("icow.in","r",stdin);
25     freopen("icow.out","w",stdout);
26     int n,t;
27     read(n);
28     read(t);
29     for(int i=1;i<=n;i++)
30     {
31         read(E[i].w);
32         E[i].me=i;
33     }
34     for(int i=1;i<=t;i++)
35     {
36         int Max=-1;
37         int Bl;
38         for(int j=1;j<=n;j++)
39         {
40             if(E[j].w>Max)
41                 Max=E[j].w,Bl=j;
42         }
43
44         printf("%d\n",Bl);
45
46         int _=E[Bl].w/(n-1);
47         for(int j=1;j<=n;j++)
48         {
49             E[j].w+=_;
50         }
51         for(int j=1;j<=(E[Bl].w%(n-1));j++)
52         {
53             E[j].w+=1;
54         }
55         E[Bl].w=0;
56     }
57     return 0;
58 }
AC代码:
 1     #include<cstdio>
 2     using namespace std;
 3     int n=0,t=0,number=0;
 4     short arr[1001]={0};
 5     int findmx()
 6     {
 7         int k=0,x=0,xk=0;
 8         for(k=0;k<n;k++)
 9         {
10             if(arr[k]>x)
11             {
12                 x=arr[k];
13                 xk=k;
14             }
15         }
16         return xk;
17     }
18     int main()
19     {
20         freopen("icow.in","r",stdin);
21         freopen("icow.out","w",stdout);
22         int i=0,j=0;
23         scanf("%d%d",&n,&t);
24         number=t-1;
25         for(i=0;i<n;i++)
26         {
27             scanf("%d",&arr[i]);
28         }
29         int mod=0,bus=0;
30         while(n&&t)
31         {
32             i=findmx();
33             printf("%d\n",i+1);
34             mod=arr[i]%number;
35             bus=arr[i]/number;
36             if(bus)
37             {
38                 for(j=0;j<n;j++)
39                 {
40                     if(j!=i)
41                     {
42                         arr[j]+=bus;
43                     }
44                 }
45             }
46             if(mod)
47             {
48                 j=0;
49                 while(mod)
50                 {
51                     if(j!=i)
52                     {
53                         arr[j]++;
54                         mod--;
55                     }
56                     j=(j+1)%n;
57                 }
58             }
59             arr[i]=0;
60             t--;
61         }
62         fclose(stdin);
63         fclose(stdout);
64         return (0);
65     }

				
时间: 2024-12-23 16:53:29

cogs 142. [USACO Jan08] iCow播放器 ???的相关文章

COGS 147. [USACO Jan08] 架设电话线

★★☆   输入文件:phoneline.in   输出文件:phoneline.out   简单对比时间限制:1 s   内存限制:16 MB Farmer John打算将电话线引到自己的农场,但电信公司并不打算为他提供免费服务.于是,FJ必须为此向电信公司支付一定的费用. FJ的农场周围分布着N(1 <= N <= 1,000)根按1..N顺次编号的废弃的电话线杆,任意两根电话线杆间都没有电话线相连.一共P(1 <= P <= 10,000)对电话线杆间可以拉电话线,其余的那些

实现音乐播放器

音乐播放器    首先声明一下,本例是直接采用课本中范例122的方法. 1.activity_main.xml布局 1 <TextView 2 android:layout_width="fill_parent" 3 android:layout_height="wrap_content" 4 android:text="music" 5 /> 6 //四个按钮 7 <LinearLayout 8 android:layout_

web音乐播放器

今天闲暇时间,花了2小时,写了个简单音乐播放器.欢迎大家来吐糟 先看下界面截图 大体实现:播放,停止,上一曲,下一曲,循环播放功能. 知识点:1.html 中audio 2.css 位置fixed 其中audio用到的方法:1.play 2.pause ,属性:1.src 2.loop 对于audio不熟悉的移步到http://www.w3school.com.cn/jsref/dom_obj_audio.asp 其中数据部分是在网上找了的保存在listrings.js中 下边关键时刻代码来了

iOS开发拓展篇—音频处理(音乐播放器5)

iOS开发拓展篇—音频处理(音乐播放器5) 实现效果: 一.半透明滑块的设置 1 /** 2 *拖动滑块 3 */ 4 - (IBAction)panSlider:(UIPanGestureRecognizer *)sender { 5 6 //1.获得挪动的距离 7 CGPoint t=[sender translationInView:sender.view]; 8 //把挪动清零 9 [sender setTranslation:CGPointZero inView:sender.view

h5自定义播放器得实现原理

1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 <!--插入播放按钮得文字图标格式(具体使用方法可以百度http://fontawesome.dashgame.com/)--> 7 <link rel="stylesheet&

FFmpeg入门,简单播放器

一个偶然的机缘,好像要做直播相关的项目 为了筹备,前期做一些只是储备,于是开始学习ffmpeg 这是学习的第一课 做一个简单的播放器,播放视频画面帧 思路是,将视频文件解码,得到帧,然后使用定时器,1秒显示24帧 1.创建win32工程,添加菜单项 “打开” 为了避免闪烁,MyRegisterClass中设置hbrBackground为null 2.在main函数中初始化ffmpeg库:av_register_all(); 3.响应菜单打开 1 void LoadVideoPlay(HWND h

基于ffmpeg网络播放器的教程与总结

基于ffmpeg网络播放器的教程与总结 一.         概述 为了解决在线无广告播放youku网上的视频.(youku把每个视频切换成若干个小视频). 视频资源解析可以从www.flvcd.com获取,此网站根据你输入的优酷的播放网页地址解析成若干个真实的视频地址. 二.         实现 首先搜索关闭网络播放器(流媒体播放器的实现方法) 得出的结论,目前主流的播放器分三大阵营微软,苹果,基于FFmpeg内核的.所以我决定从ffmpeg开源的播放器入手. 最出名的ffmpeg播放器vc

iOS开发拓展篇—音频处理(音乐播放器6)

iOS开发拓展篇—音频处理(音乐播放器6) 一.图片处理 说明: Aspect表示按照原来的宽高比进行缩放. Aspectfit表示按照原来的宽高比缩放,要求看到全部图片,后果是不能完全覆盖窗口,会留有空白. Aspectfill表示按照原来的宽高比缩放,但只能看到部分图片.引发的问题:可能会有一部分超出屏幕. 所以,如果选择了Aspectfill模式,那么需要剪切超出的图片,在storyboard中也可以进行设置. 下面的两种设置是等效的. (1)在storyboard中进行设置 (2)使用代

iOS开发拓展篇—音频处理(音乐播放器4)

iOS开发拓展篇—音频处理(音乐播放器4) 说明:该文主要介绍音乐播放器实现过程中的一些细节控制. 实现的效果: 一.完整的代码 YYPlayingViewController.m文件 1 // 2 // YYPlayingViewController.m 3 // 20-音频处理(音乐播放器1) 4 // 5 // Created by apple on 14-8-13. 6 // Copyright (c) 2014年 yangyong. All rights reserved. 7 //