Codeforces Round #433
我会4题,写了两题,还提交错误n次,掉了40rating(哭丧脸),又被学长D飞了。
学长:我很心疼你的成绩啊;
我:第四题忘记加特判了。。。
学长:暴力还能写挂。
我:。。。。。。
———————————————————我是分割线———————————————————
T1:给定一个n,求一个分数a/b(满足a+b=n)且gcd(a,b)=1,使这个分数<1且最大。。
我:。。。。
#include<cstdio>
#include<cmath>
using namespace std;
int gcd(int x,int y){return y==?x:gcd(y,x%y);}
int n;
int main(){
scanf("%d",&n);
for(int i=(n-)/;i>=;i--){
if(gcd(i,n-i)==){printf("%d %d\n",i,n-i);break;}
}
}
———————————————————我是分割线———————————————————
T2:一共有n个点,其中k个点已经有人居住,求旁边有人居住的空置的点至少有几个,最多有几个。
我:。。。。。。(如果n==k||k==0输出0 0,否则输出1和j(k*3<=n?j=n-k:j=k*2))
我:假题。
#include<cstdio>
using namespace std;
long long n,k;
int main(){
scanf("%I64d%I64d",&n,&k);
if(n==k||k==)puts("0 0");
else {
printf("1 ");
if(k*<=n)printf("%I64d",k*);
else printf("%I64d",n-k);
}
}
———————————————————我是分割线———————————————————
T3:有n个航班, 第i个航班原始是从第i秒起飞的。不过由于延误,前k秒不能起飞飞机,要求你让每一个航班在k+1~k+n秒中选一个时间起飞(不能重复),而且每一个航班延误1秒花费的代价为ci,要你求最小的代价。
我:。。题目正常了。
感觉尽量让ci越大的航班延误时间越小越好。所以。。大胆猜想!不用证明!
我们把ci按照时间顺序扔进大根堆里中,然后统计答案就好了。
然后我想到了,考场上没来得及写啊(抓狂~~~)
#include<cstdio>
#include<vector>
#include<queue>
using namespace std;
int g[],n,k,c[];
typedef pair<int,int> ii;
int main(){
int n,k;
scanf("%d%d",&n,&k);
for(int i=;i<n;i++)scanf("%d",&c[i]);
priority_queue<ii>pq;k--;
long long cost=;
for(int i=;i<n||(!pq.empty());i++){
if(i<n) pq.push(ii(c[i],i)); if(i>k){
ii re=pq.top();
pq.pop();
cost+=1LL*re.first*(i-re.second);
g[re.second]=i+;
}
}
printf("%I64d\n",cost);
for(int i=;i<n;i++) printf("%d ",g[i]);
}
———————————————————我是分割线———————————————————
T4:一共有m张机票,每趟飞机要么从0号点飞向其他点,要么从其他点飞向0号点,给你每趟飞机的到达时间,1-n个城市里刚好有编号为1-n的人,求让这n个人同时在0号城市呆k天且最后回到城市的最小花费是多少。。(时间大小<=1000000)
我:这题目有点意思。、、、
过了一会儿。。。
我:这不就是暴力枚举吗。。。正着枚举一遍时间轴,求1-100000s时n个人到达0号城市的代价,然后反着再枚举一遍时间轴,求n个人回到各自城市的代价。
然后统计答案就好了,暴力题。(考场上写特判挂了。。。)
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
long long Min(long long a,long long b){return a<b?a:b;}
struct hh{
long long d,f,t,c;
}gg[];
long long n,m,k,cost[],sum,qc[],l,qian,ans=;
bool cmp(hh x,hh y){return x.d<y.d;}
int main()
{
scanf("%I64d%I64d%I64d",&n,&m,&k);
for(int i=;i<=m;i++) scanf("%I64d%I64d%I64d%I64d",&gg[i].d,&gg[i].f,&gg[i].t,&gg[i].c);
sort(gg+,gg++m,cmp);
l=n;qian=;
for(long long i=;i<=;i++)
{
while(gg[qian].d==i)
{
if(!cost[gg[qian].f]&&gg[qian].f!=)
{
cost[gg[qian].f]=gg[qian].c;
sum+=gg[qian].c;
l--;
}
else
{
if(cost[gg[qian].f]>gg[qian].c)
{
sum+=gg[qian].c-cost[gg[qian].f];
cost[gg[qian].f]=gg[qian].c;
}
}
qian++;
}
if(!l)
qc[i]=sum;
else qc[i]=-;
}
qian=m;l=n;sum=;
memset(cost,,sizeof cost);
for(long long i=;i>=k+;i--)
{
while(gg[qian].d==i)
{
if(!cost[gg[qian].t]&&gg[qian].f==)
{
cost[gg[qian].t]=gg[qian].c;
sum+=gg[qian].c;
l--;
}
else
{
if(cost[gg[qian].t]>gg[qian].c)
{
sum+=gg[qian].c-cost[gg[qian].t];
cost[gg[qian].t]=gg[qian].c;
}
}
qian--;
}
if(l==&&qc[i-k-]!=-) ans=Min(ans,sum+qc[i-k-]);
}
if(ans!=) printf("%I64d",ans);
else printf("-1");
}
———————————————————我是分割线———————————————————
Codeforces Round #433的更多相关文章
- Codeforces Round #433 (Div. 2)【A、B、C、D题】
题目链接:Codeforces Round #433 (Div. 2) codeforces 854 A. Fraction[水] 题意:已知分子与分母的和,求分子小于分母的 最大的最简分数. #in ...
- Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises)
A. Fraction 题目链接:http://codeforces.com/contest/854/problem/A 题目意思:给出一个数n,求两个数a+b=n,且a/b不可约分,如果存在多组满足 ...
- Codeforces Round#433 简要题解
来自FallDream的博客,未经允许,请勿转载,谢谢. 我的号自从几个月前姿势水平过低疯狂掉分之后就没动过了 突然想上点分 就打了一场Div1 没想到打到了rank5 一发上橙了,可还行. ...
- [Codeforces Round #433][Codeforces 853C/854E. Boredom]
题目链接:853C - Boredom/854E - Boredom 题目大意:在\(n\times n\)的方格中,每一行,每一列都恰有一个被标记的方格,称一个矩形为漂亮的当且仅当这个矩形有两个角是 ...
- Codeforces Round #433 Div. 1
A:显然从大到小排序后贪心放在第一个能放的位置即可.并查集维护. #include<iostream> #include<cstdio> #include<cmath&g ...
- codeforces 853b//Jury Meeting// Codeforces Round #433 (Div. 1)
题意:几个人要去一个城市k天,现给出各航班的日期和花费,让这n个人能相会k天的最小花费? 用数组arr1[i]记录在第i天人到齐的最小花费.arr2[i]记录第i天之后才有人开始走的最小花费.然后取a ...
- Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises) D. Jury Meeting(双指针模拟)
D. Jury Meeting time limit per test 1 second memory limit per test 512 megabytes input standard inpu ...
- Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises) D
Country of Metropolia is holding Olympiad of Metrpolises soon. It mean that all jury members of the ...
- Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises) C
Helen works in Metropolis airport. She is responsible for creating a departure schedule. There are n ...
随机推荐
- 【APUE】Chapter16 Network IPC: Sockets & makefile写法学习
16.1 Introduction Chapter15讲的是同一个machine之间不同进程的通信,这一章内容是不同machine之间通过network通信,切入点是socket. 16.2 Sock ...
- dispaly:-webkit-box 布局中的坑
dispaly:-webkit-box 具体用法 这里大家可以网上查, 这里说下里面的坑 里面的子对象设置-webkit-box-flex: 1 -webkit-box-flex: 2 时:一般两个子 ...
- Linux-ls,cd,type命令
windows: dll:dynamic link library,动态链接库 Linux: .so:shared object,共享对象 操作系统: kernel:内核: 1.进程管理 2.内核管理 ...
- 用Python 的一些用法与 JS 进行类比,看有什么相似?
Python 是一门运用很广泛的语言,自动化脚本.爬虫,甚至在深度学习领域也都有 Python 的身影.作为一名前端开发者,也了解 ES6 中的很多特性借鉴自 Python (比如默认参数.解构赋值. ...
- 官方文档 恢复备份指南五 Configuring the RMAN Environment
本章内容: Configuring the Environment for RMAN Backups 配置RMAN环境 Configuring RMAN to Make Backups to a ...
- QQ互联登陆的最简洁代码
<?php/** * http://wiki.open.qq.com/wiki/ * Date: 14-6-18 * Time: 下午18:04 */class Model_Login_QqCo ...
- JAVA_四大代码块_普通代码块、构造代码块、静态代码块、同步代码块。
普通代码块 在方法或语句中出现的{}里面的内容就被称为普通代码块,普通代码块和一般的语句执行顺序一样,由他们在代码中出现的次序决定,即--"先出现先执行". 但是不同的普通代码块即 ...
- Python模块学习:logging 日志记录
原文出处: DarkBull 许多应用程序中都会有日志模块,用于记录系统在运行过程中的一些关键信息,以便于对系统的运行状况进行跟踪.在.NET平台中,有非常著名的第三方开源日志组件log4net ...
- Python中运算符"=="和"is"的差别分析
前言 在讲is和==这两种运算符区别之前,首先要知道Python中对象包含的三个基本要素,分别是:id(身份标识).python type()(数据类型)和value(值).is和==都是对对象进行比 ...
- epc笔记
http://wenku.baidu.com/view/5e921520dd36a32d7375812a.html 1. 先注册, EPC注册EPS业务或non-EPS服务 ?? HSS做什么? 2 ...