[usaco3.2.3]spin

  这道题直接枚举就好了,但我当时竟然没想到,我真是太失败了。。。。。Q_Q

/*
ID:abc31261
LANG:C++
TASK:spin
*/

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int n=5,maxn=360;
int s[10],first[10][10],end[10][10],num[10],f[maxn*2];
bool flag=false;

void solve(int h,int l)
{
     for (int i=h;i<=l;i++)
     {
         f[i]++;
         if (f[i]>=5)flag=true;
     }
}
int main()
{
    int i,j,l,k;
    freopen("spin.in","r",stdin);
    freopen("spin.out","w",stdout);
    for (i=1;i<=n;i++)
    {
        scanf("%d%d",&s[i],&num[i]);
        for (l=1;l<=num[i];l++)
        {
            scanf("%d%d",&first[i][l],&end[i][l]);
            end[i][l]+=first[i][l];
        }
    }
    for (l=0;l<=360;l++)
    {
        memset(f,0,sizeof(f));
        for (i=1;i<=n;i++)
            for (j=1;j<=num[i];j++)
            {
                first[i][j]%=maxn; end[i][j]%=maxn;
                if (first[i][j]>end[i][j])solve(first[i][j],359),solve(0,end[i][j]);
                   else solve(first[i][j],end[i][j]);
            }
         if (flag)break;
         for (i=1;i<=n;i++)
             for (j=1;j<=num[i];j++)first[i][j]+=s[i],end[i][j]+=s[i];
    }
    if (flag)cout<<l<<endl;
        else cout<<"none"<<endl;
    return 0;
}
时间: 2024-12-29 11:22:08

[usaco3.2.3]spin的相关文章

usaco-3.1-PROB Shaping Regions-漂浮法

漂浮法,顾名思义,就是一块块的往上飘. 以逆序来进行放置,即n to 1.逆序的好处在于放置一个矩形后,俯视看到的就是最终俯视该矩形应该看到的.因为挡着它的矩形在之前已经放置好了,所以可直接统计,为递归创造了条件.每放一个矩形,可以想象成将其扔入一密度很大的海水底部,海分成了n层,然后矩形开始向上浮.在上浮过程中若碰撞到其他的矩形则断裂成几个小矩形,继续上浮,直到浮出水面.于是想到用个递归来模拟上浮过程. /* ID: rowanha3 LANG: C++ TASK: rect1 */ #inc

usaco-3.2-spin-pass

模拟题,量不大. 转动360秒以后,所有轮子回到起始角度.因此如果360秒以后还没有出现重合情况的话,就可以退出循环了. 如何判断五个轮子重合呢?起初我也没有很好的方法,一个个去判断重合区域实在是太麻烦了.后来想到一个好方法.把 360度的轮子分成360个区域,用整形数组表示,如果一个轮子的缺口在这个区域内,则这个小区域加1,计算5个轮子的所有缺口.然后遍历这个数组,如果 有个区域的值>=5,表明这个区域上面至少有5个缺口,则5个缺口重合,退出循环. /* ID: qq104801 LANG:

本地自旋锁与信号量/多服务台自旋队列-spin wait风格的信号量

周日傍晚,我去家附近的超市(...)买苏打水,准备自制青柠苏打.我感觉我做的比买的那个巴黎水要更爽口.由于天气太热,非常多人都去超市避暑去了,超市也不撵人,这仿佛是他们的策略.人过来避暑了,走的时候难免要买些东西的.就跟非常多美女在公交地铁上看淘宝消磨时光,然后就下单了...这是多么easy一件事,反之开车的美女网购就少非常多.对于超市的避暑者,要比公交车上下单更麻烦些,由于有一个成本问题,这就是排队成本.       其实这是一个典型的多服务台排队问题,可是超市处理的并不好.存在队头拥塞问题.

spin constrol与edit 控件共用

第一步:创建一个spin control,属性 Set Buddy Integer 设为 True,绑定控件为m_spinPollingTime 创建一个edit control,ID为IDC_EDIT_POLLING_TIME, 属性改为只是数字与不可修改, 绑定值为 m_nPollingTime 第二步:在对话框的初始化函数OnInitDialog()里添加 m_spinPollingTime.SetBuddy(GetDlgItem(IDC_EDIT_POLLING_TIME)); // 关

InnoDB Spin rounds per wait在&gt;32位机器上可能为负

今天发现一个系统innodb的spin rounds per wait为负,感觉很奇怪,原来是个bug: For example (output from PS but we have no patches here), ---------- SEMAPHORES ---------- OS WAIT ARRAY INFO: reservation count 19811539060 OS WAIT ARRAY INFO: signal count 8333711487 Mutex spin w

spin.js使用

spin.js,ruby上使用例子 <div id="spinBody"> <div>     <% form_tag "/login", :id => "login_form"  do -%>               <table width="100%" cellpadding="3" style="margin-top:15px;"

ros::spin() 和 ros::spinOnce() 区别及详解

版权声明:本文为博主原创文章,转载请标明出处: http://www.cnblogs.com/liu-fa/p/5925381.html “不愿担责任”提示:本文基于ROS Kinetic Kame,如有更(gèng)新版本,可能存在细微差别,请大兄弟以官方资料为准. 博主向来愚钝,若大兄弟发现该文章有不妥之处,还请速速告知. 1 函数意义 首先要知道,这俩兄弟学名叫ROS消息回调处理函数.它俩通常会出现在ROS的主循环中,程序需要不断调用ros::spin() 或 ros::spinOnce(

spin.js 在jsp的使用

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ page contentType="text/html;charset=utf-8"%>  <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"

Spin.js-CSS动画进度载入器

spin.js是一款很easy的CSS载入器,他是一款使用了VML(Vector Makeup Language)的CSS动画效果. spin.js的特性 他有着很强大的适应性.有着下面几个特性: 1.    没有额外的图片.也没有添加的外部CSS文件 2.    不须要依赖于其它工具,对于jQuery而言,它支持jQuery,可是jQuery并不是必须的 3.    有非常高的可配置性 4.    与分辨率无关 5.    浏览器兼容性非常好,在低版本号的IE上.採用VML支持 6.    使