zoukankan      html  css  js  c++  java
  • 解题:USACO13NOV Empty Stalls

    题面

    当然可以用并查集做,不过你需要按秩合并+路径压缩(才可能过),因为数据范围十分不友好......

    USACO的官方做法更为优秀。首先题目告诉我们牛们加入的前后顺序不影响结果(自己证明也很容易,显然两头牛到达一个房子最后的结果看起来是一样的)。所以我们不妨先把牛们都安排在它们喜欢的房子,然后$O(n)$扫描一遍模拟把它们放进对应的房子这个过程。因为第一次我们先扫到前面,可能后面一些牛之后又到了前面,所以要再扫一遍。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<algorithm>
     4 using namespace std;
     5 const int N=3000005;
     6 int n,k,x,y,a,b,s;
     7 int cow[N],used[N];
     8 int main()
     9 {
    10     scanf("%d%d",&n,&k);
    11     for(int i=1;i<=k;i++)
    12     {
    13         scanf("%d%d%d%d",&x,&y,&a,&b);
    14         for(int j=1;j<=y;j++) cow[(1ll*a*j+b)%n]+=x;
    15     }
    16     for(int i=0;i<n;i++)
    17         {s+=cow[i]; if(s) s--;}
    18     for(int i=0;i<n;i++)
    19     {
    20         s+=cow[i]; if(s) s--;
    21         else {printf("%d",i); break;}
    22     }
    23     return 0;
    24 }
    View Code
  • 相关阅读:
    syslog
    setting-url配置
    计划任务_crontab
    css
    git之一: git基础
    LeetCode 第 151 场周赛
    LeetCode 第 149 场周赛
    LeetCode 第 150 场周赛
    【解决方案】SpringCloud项目优雅发版、部署
    NAT(地址转换技术)学习
  • 原文地址:https://www.cnblogs.com/ydnhaha/p/9757317.html
Copyright © 2011-2022 走看看