Problem F. Finance

题目连接:

http://codeforces.com/gym/100714

Description

The Big Boss Company (BBC) principal is going to prepare a vacation schedule for the next year. Each

employee of BBC gets a four-week vacation each year. A vacation can be divided into several parts. Each

part consists of several weeks. The parts are separated by at least one work week.

According to the law, the pay for each vacation part is calculated separately from the others as follows.

Consider the employee’s salary for the period of 52 weeks preceding the current part of the vacation and

divide it by 52. (A year is assumed to consist of exactly 52 weeks.) All vacation pays during these 52

weeks are ignored for the purpose of salary calculation. The result is multiplied by the number of weeks

in this part of the vacation (ranging from 1 to 4).

Given the vacation schedules for the current year, you should help the BBC principal to construct the

next year’s schedule that minimizes the total vacation pay costs. Since the pays for distinct employees

are unrelated you are to solve the problem assuming that there is only one employee.

Input

The input contains four integers listed in the ascending order giving the vacation weeks in the current

year’s schedule. Weeks are specified by numbers ranging from 1 to 52.

Output

Output the numbers of vacation weeks for the next year in the ascending order. The vacation schedule

should minimize the vacation pay costs. If there are several equivalent solutions, output any of them.

Sample Input

2 3 20 21

Sample Output

1 2 3 5

Hint

题意

给你去年的假期安排,然后让你安排今年的假期,使得花费最少。

假期的花费是这样的,如果前面52天有一个假期的话,那么这一天的花费--

但是连着一起的话,就跟着算。

(我语文不好。。 还是自己读题吧 TAT

题解:

52^4枚举,然后再check就好了,check我用的树状数组,仔细一想,好像直接O(56)枚举,然后判断就好了……

代码

#include<bits/stdc++.h>
using namespace std;
const int maxn = 110;
int ans,ans1,ans2,ans3,ans4;
int ppp[maxn];
int lowbit(int x){
return x&(-x);
}
void update(int x,int v){
for(int i=x;i<maxn;i+=lowbit(i))
ppp[i]+=v;
}
int get(int x,int tmp=0){
if(x==0)return 0;
for(int i=x;i;i-=lowbit(i))
tmp+=ppp[i];
return tmp;
}
void cal(int x,int y,int z,int t){
int px=x,py=y,pz=z,pt=t;
if(y==x+1)y=x; if(z==x+2)z=x;
if(z==y+1)z=y; if(t==x+3)t=x;
if(t==y+2)t=y;
if(t==z+1)t=z; update(px+52,1);
update(py+52,1);
update(pz+52,1);
update(pt+52,1); int a1=get(x+51)-get(x-1);
int a2=get(y+51)-get(y-1);
int a3=get(z+51)-get(z-1);
int a4=get(t+51)-get(t-1);
int d[5];
d[1]=0,d[2]=0,d[3]=0,d[4]=0;
d[a1]++;
d[a2]++;
d[a3]++;
d[a4]++;
int sum = (52-a1)+(52-a2)+(52-a3)+(52-a4);
if(sum<ans){
ans=sum,ans1=px,ans2=py,ans3=pz,ans4=pt;
}
update(px+52,-1);
update(py+52,-1);
update(pz+52,-1);
update(pt+52,-1);
}
int main(){
//freopen("1.out","w",stdout);
int a,b,c,dd;
ans = 1e9;
scanf("%d%d%d%d",&a,&b,&c,&dd);
update(a,1);
update(b,1);
update(c,1);
update(dd,1);
cal(1,2,3,4); for(int i=1;i<=52;i++){
for(int j=i+1;j<=52;j++){
for(int k=j+1;k<=52;k++){
for(int t=k+1;t<=52;t++){
cal(i,j,k,t);
}
}
}
} cout<<ans1<<" "<<ans2<<" "<<ans3<<" "<<ans4<<endl;
}

2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem F. Finance 模拟题的更多相关文章

  1. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem J. Joke 水题

    Problem J. Joke 题目连接: http://codeforces.com/gym/100714 Description The problem is to cut the largest ...

  2. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem H. Hometask 水题

    Problem H. Hometask 题目连接: http://codeforces.com/gym/100714 Description Kolya is still trying to pass ...

  3. 2013-2014 ACM-ICPC, NEERC, Southern Subregional Contest Problem F. Judging Time Prediction 优先队列

    Problem F. Judging Time Prediction 题目连接: http://www.codeforces.com/gym/100253 Description It is not ...

  4. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem D. Distance 迪杰斯特拉

    Problem D. Distance 题目连接: http://codeforces.com/gym/100714 Description In a large city a cellular ne ...

  5. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem C. Contest 水题

    Problem C. Contest 题目连接: http://codeforces.com/gym/100714 Description The second round of the annual ...

  6. 2016-2017 ACM-ICPC, NEERC, Moscow Subregional Contest Problem L. Lazy Coordinator

    题目来源:http://codeforces.com/group/aUVPeyEnI2/contest/229511 时间限制:1s 空间限制:512MB 题目大意: 给定一个n 随后跟着2n行输入 ...

  7. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem K. KMC Attacks 交互题 暴力

    Problem K. KMC Attacks 题目连接: http://codeforces.com/gym/100714 Description Warrant VI is a remote pla ...

  8. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem I. Interest Targeting 模拟题

    Problem I. Interest Targeting 题目连接: http://codeforces.com/gym/100714 Description A unique display ad ...

  9. 2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem A. Alien Visit 计算几何

    Problem A. Alien Visit 题目连接: http://codeforces.com/gym/100714 Description Witness: "First, I sa ...

随机推荐

  1. CSS3 Day1 练习

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. ASP.net 控件实现数据级联

    今天我们来一起用ASP.net实现一个级联,这个小不点应该是会经常用到的的. 咱们简单的画两个窗体.文本框会根据下拉框所选的内容显示不同的内容. 具体实现效果如下 步骤一: 准备工作,建立相应的数据库 ...

  3. CSS text系列

    text-shadow 语法规则: h-shadow(必需,水平阴影的位置,可负): v-shadow(必需,垂直阴影的位置,可负): blur(可选,模糊距离): color(可选,阴影的颜色). ...

  4. TrID文件类型识别linux版

    读取文件头根据特征码进行文件类型匹配. 官方:http://mark0.net/soft-trid-e.html windows版本小工具:FileAnalysis 以下是linux版本 wget h ...

  5. python psutil监控系统资源【转】

    通过 运用 Python 第三方 系统 基础 模块, 可以 轻松 获取 服务 关键 运营 指标 数据,包括 Linux 基本 性能. 块 设备. 网卡 接口. 系统 信息. 网络 地址 库 等 信息. ...

  6. MongoDB之pymongo

    PyMongo是什么 PyMongo是驱动程序,使python程序能够使用Mongodb数据库,使用python编写而成. 安装 环境:Ubuntu 14.04+python2.7+MongoDB 2 ...

  7. 乐视max2 在开发中无法打印某些logcat 解决方案

    乐视屏蔽了打印log.d等类型logcat.解决方案:拨号键盘 *#*#76937#*#* 出现页面后选最下面那个选项就有了.

  8. python2脚本批量转成python3

    #查看 模块的安装路径 import tools print (tools.__file__) #进入cmd,然后python 2to3.py -w 需要批量转换的文件所在的路径#参考:http:// ...

  9. 解决spring boot JavaMailSender部分收件人错误导致发送失败的问题

    使用spring boot通常使用spring-boot-starter-mail进行邮件的发送.当进行邮件群发的话,如果一个收件人的地址错误,会导致所有邮件都发送失败.因此我们需要在邮件发送失败的时 ...

  10. 关于oracle分组排序取值的问题

    按照 某字段分组 某字段排序 然后取出该分组中排第1条数据(每组只取一条) SELECT* FROM( SELECT a.*,row_number() over(partition by ORI_FE ...