zoukankan      html  css  js  c++  java
  • 2018QBXT刷题游记(23)

    【2018QBXT刷题游记】

    Day5 TEST8

    T2 schedule

    【问题描述】
    共有 n 件事情,编号为 1, 2, …, n,第 i 件事情的难度为 i. 划分为 m 个时刻,并设定了三个正整数 a, b, c。
    定义一个数列{xi},满足:
    x0=0,xi=(axI1+b)mod  2nc(1im)x_{0} = 0, x_{i} = (a*x_{I−1}+ b) mod 2*n*c (1 ≤ i ≤ m)
    即从 x_{1} 开始,数列的每项等于上一项的 a 倍加上 b 以后除以 2nc 的余数。
    开始时日程表是空的. 第 i 个时刻前,

    1. 若 xi < nc,则将编号为xc+1⌊frac{x}{c}⌋ + 1的事件加⼊日程表,若日程表已有该事件则忽略;
    2. 若 xi ≥ nc,则将编号为 xcn+1⌊frac{x}{c}⌋ - n+ 1 的事件从日程表删除,若日程表没有该事件则忽略;
      第 i 个时刻(1 ≤ i ≤ m),所做的事情就是该时刻日程表中的所有事件.
      对于每个时刻,定义该时刻的g工作量为该时刻做了几件事情,该时刻的疲劳度为该时刻做的所有事情的难度之和.

    根据 n, m, a, b, c 计算总工作量和疲劳度.
    n5×107m2×106a106b109c5×104n ≤ 5×10^7,m ≤ 2×10^6,a ≤ 10^6,b ≤ 10^9,c ≤ 5×10^4

    【分析】一道模拟题,不过这n有点大啊……

    于是我欢快地开大了数组。爆零快乐!

    其实只需要判断一下当前时刻加入或删除的数就可以啦,用t1和t2表示在计划表里的工作量和疲劳度即可~

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    using namespace std;
    #define ll long long
    #define MAXN 2000005
    bool vis[50000005];
    ll n,m,a,b,c,t1,t2;
    #define MOD 1000000007
    ll gzl,pld;
    int main(){
    	freopen("schedule.in","r",stdin);
    	freopen("schedule.ans","w",stdout); 
    	scanf("%lld%lld%lld%lld%lld",&n,&m,&a,&b,&c);
    	ll tmp=0;ll qaq=n*c;
    	for(ll i=1;i<=m;i++){
    		tmp=(a*tmp+b)%(qaq*2);
    		if(tmp<qaq){
    			ll noww=(tmp/c)+1;
    			if(!vis[noww]){
    			vis[noww]=1;
    			t1=(t1+1)%MOD;t2=(t2+noww)%MOD;}
    		}
    		else{
    			if((tmp/c-n+1)>0){
    			ll noww=tmp/c-n+1;
    			if(vis[noww]){
    			vis[noww]=0;
    			t1=(t1-1+MOD)%MOD;
    			t2=(t2-noww+MOD)%MOD;}
    		}}
    		gzl=(gzl+t1)%MOD;
    		pld=(pld+t2)%MOD;
    	}
    	printf("%lld %lld
    ",gzl,pld);
    	return 0;
    }
    
    
  • 相关阅读:
    pip install pli 提示:Could not find a version that satisfies the requirement PIL
    关于selenium部分元素定位不到的解决办法
    ERROR 1054 (42S22): Unknown column ‘password‘ in ‘field list‘
    通过Tomcat jpress连接不到数据库
    Navicat MySQL 连接出现 Authentication plugin ‘caching_sha2_password‘ cannot be loaded
    Selenium中核心属性以及方法
    selenium中定位frame中的元素
    selenium中截屏以及按照时间格式保存到相应文件夹
    Selenium中核心属性以及方法
    selenium中关于js脚本的一些操作
  • 原文地址:https://www.cnblogs.com/erutsiom/p/9905144.html
Copyright © 2011-2022 走看看