2010-2011 ACM-ICPC, NEERC, Moscow Subregional Contest Problem F. Finance 模拟题
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 模拟题的更多相关文章
- 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 ...
- 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 ...
- 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 ...
- 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 ...
- 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 ...
- 2016-2017 ACM-ICPC, NEERC, Moscow Subregional Contest Problem L. Lazy Coordinator
题目来源:http://codeforces.com/group/aUVPeyEnI2/contest/229511 时间限制:1s 空间限制:512MB 题目大意: 给定一个n 随后跟着2n行输入 ...
- 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 ...
- 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 ...
- 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 ...
随机推荐
- [ASP.NET]初试Web API
Web API 1: 需要环境(VS2010/.Net4.0/MVC4 ) http://www.asp.net/web-api/overview/creating-web-apis/creating ...
- [QuickRoR]Ruby on Rails开发环境安装
1.Setup Ruby on Rails2.Test Web App3.Create the First Web App 1.Setup Ruby on Rails1) Download rubyi ...
- ASP.NET私有构造函数作用
一.私有构造函数的特性 1.一般构造函数不是私有或者保护成员,但构造函数可以使私有成员函数,在一些特殊的场合,会把构造函数定义为私有或者保护成员. 2.私有构造函数是一种特殊的实例构造函数.它通常用在 ...
- 8个提高效率的CSS实用工具
CSS,也就是Cascading Style Sheets,推出于1997年,差不多是17年前,至此为我们开发网页大开方便之门,协助我们制作出一个又一个惊艳绝伦的网站设计和模板,提升了我们的创造能力, ...
- 高可用的MongoDB集群【转】
刚接触MongoDB,就要用到它的集群,只能硬着头皮短时间去看文档和尝试自行搭建.迁移历史数据更是让人恼火,近100G的数据文件,导入.清理垃圾数据执行的速度蜗牛一样的慢.趁着这个时间,把这几天关于M ...
- mitmdump 屏蔽443错误
mitmdump --ignore-hosts ".*443$" -s test.py
- Java与.NET的WebServices相互调用
一:简介 本文介绍了Java与.NET开发的Web Services相互调用的技术.本文包括两个部分,第一部分介绍了如何用.NET做客户端调用Java写的Web Services,第二部分介绍了如何用 ...
- sh-copy-id命令报错:-bash: ssh-copy-id: command not found
参考网址:http://www.bubuko.com/infodetail-1662159.html yum -y install openssh-clients
- eclipse:无法删除不存在的工程
把工程改名后,结果在eclipse里面产生了两个工程,一个原工程,一个是新工程,删除原工程报错, 说工程不存在.这个时候拖动原工程到别的workset中,发现原工程消失了,并找到workspace目录 ...
- Python学习系列之(一)---Python的安装
Python几乎可以在任何平台下运行,如我们所熟悉的:Windows/Unix/Linux/Macintosh. 在这里我们说一下,在Windows操作系统中安装python. 我的操作系统为:Win ...