ZOJ-1029-Moving Tables

这道题算法分类为贪心 。

不过也要看怎么做了,400个房间面对面,走廊分为200个段,用map[]表示,把输入的房间房间号做一个(x+1)/2的转换,便是它占用的段数,不过记得整个算式是针对int变量的。接着就把输入的两个房间段之间的map[]值全部加1,最后数一下最大数字就OK了,输出时乘个10。

程序很简单,几分钟就写好,可是WA了两次又让我郁闷要死,怎么想方法都应该没错啊,后来只好在ZOJ的论坛上搜索,意外得发现一组测试数据:

3
100 10
80 60
30 50

一看见就想骂人。。。题目中给了那么多数据全部都是先小后大的。。。于是加了几行代码,要是先大后小就交换一下。。。然后就AC了。。。ft!

还有就是AC以后我又试了一下,如果不把房间号转成段数而直接用的话,会WA的。

TIME:       00:00.01

MEMORY:832K

#include  < iostream >
using   namespace  std;

#define  MAXN 201
int  map[MAXN];

void  solve()
{
    
int i,n,start,end,m;

    
for(i=0;i<MAXN;i++)//初始化
        map[i] = 0;

    cin 
>> n;
    
while(n--)
    
{
        cin 
>> start;
        cin 
>> end;
        
if(start > end)
        
{
            
int temp = start;
            start 
= end;
            end 
= temp;
        }

        
for(i=(start+1)/2;i<=(end+1)/2;i++)
            map[i] 
+= 1;
    }


    m 
= map[1];
    
for(i=2;i<MAXN;i++)
    
{
        
if(map[i]>m)
            m 
= map[i];
    }

    cout 
<< m*10 << endl;
}


int  main()
{
    
int t;
    cin 
>> t;
    
while(t--)
        solve();
    
return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
VGA显示一个小方块,FPGA(EP4CE6)实验Verilog逻辑源码Quartus工程文件+文档资料,FPGA为CYCLONE4系列中的EP4CE6E22C8. 完整的工程文件,可以做为你的学习设计参考。 ********************************************************************************************************/ //上电后,VGA显示一个移动的小块,碰到边框的时候被弹开。 module VGA_Moving_Block ( input sys_clk , input sys_rst_n , output wire Hs , output wire Vs , output wire VGA_G , output wire VGA_B , output wire VGA_R ); //Reg define reg sys_clk_pixel ; reg [9:0] x_count ; reg [9:0] y_count ; reg hsync ; reg vsync ; reg [17:0] clk_cnt ; reg clkout ; reg up_down_x; reg up_down_y; //上升和下降信号 reg [9:0] x_pos ; //小方块左上角坐标 reg [9:0] y_pos ; //小方块左上角坐标 //Wire define wire valid_mov; wire valid_1 ; wire valid_2 ; wire valid_3 ; wire valid_4 ; wire valid_s ; //************************************************************************************ //** Main Program //** //************************************************************************************ //像素时钟 分频产生 25Mhz 时钟 always @ (posedge sys_clk or negedge sys_rst_n) begin if (!sys_rst_n) sys_clk_pixel <= 1'b0; else sys_clk_pixel <= ~sys_clk_pixel; end //行坐标和纵坐标 always @ (posedge sys_clk_pixel) begin if (!sys_rst_n) begin x_count <= 0; y_count <= 0; end else if (x_count == 10'd799) begin x_count <= 10'd0; if (y_count == 10'd519) y_count <= 10'd0; else y_count <= y_count+1'b1; end else x_count <= x_count+1'b1; end //同步信号 always @ (posedge sys_clk_pixel) begin if (x_count <= 10'd95) hsync <= 1'b0; else hsync <= 1'b1; end always @ (posedge sys_clk_pixel) begin if (y_count <= 1'd1) vsync <= 1'b0; else vsync <= 1'b1; end assign Hs = hsync; assign

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值