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. 机器学习:分类算法性能指标之ROC曲线

    在介绍ROC曲线之前,先说说混淆矩阵及两个公式,因为这是ROC曲线计算的基础. 1.混淆矩阵的例子(是否点击广告): 说明: TP:预测的结果跟实际结果一致,都点击了广告. FP:预测结果点击了,但是 ...

  2. [iOS问题归总]iPhone上传项目遇到的问题

    1. 在上传项目的时候,UpLoad App Store后弹出iTunes Store operation failed. 错误原因:你在ItunesConnect(https://itunescon ...

  3. 那些年实用但被我忘掉javascript属性.onresize

    //获取屏幕宽度并动态赋值 var winWidth = 0; var winHeight = 0; function findDimensions() //函数:获取尺寸 { //获取窗口宽度 if ...

  4. 解决PHP curl https时error 77(Problem with reading the SSL CA cert (path? access rights?))

    服务器环境为CentOS,php-fpm,使用curl一个https站时失败,打开curl_error,捕获错误:Problem with reading the SSL CA cert (path? ...

  5. Jerasure库简介及使用范例

    刚刚写这篇文章之前看了下上一篇博客的时间:2013年7月19日.居然已经过了3个月了!好快!感叹时间的同时不由的又感叹了下自己的懒惰,其实仔细想想,这段时间自己也做了很多事情: 完成了一篇副本同步相关 ...

  6. caoha

  7. 深度学习框架之TensorFlow的概念及安装(ubuntu下基于pip的安装,IDE为Pycharm)

    2015年11月9日,Google发布人工智能系统TensorFlow并宣布开源. 1.TensorFlow的概念 TensorFlow 是使用数据流图进行数值计算的开源软件库.也就是说,Tensor ...

  8. 转:Vue-cli proxyTable 解决开发环境的跨域问题

    转:http://www.jianshu.com/p/95b2caf7e0da 和后端联调时总是会面对恼人的跨域问题,最近基于Vue开发项目时也遇到了这个问题,两边各自想了一堆办法,查了一堆资料,加了 ...

  9. ssh隐藏的sftp功能的使用

    sftp是Secure File Transfer Protocol的缩写,安全文件传送协议.可以为传输文件提供一种安全的加密方法.sftp 与 ftp 有着几乎一样的语法和功能.SFTP 为 SSH ...

  10. 浅谈SpringMVC

    M--模型(实体vo[视图对象]与页面对面) V--视图(JSP,,velocity,FreeMarker,html,thymeleaf) C--控制器(servlet,if语句控制M数据跳转到V进行 ...