我会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的更多相关文章

  1. Codeforces Round #433 (Div. 2)【A、B、C、D题】

    题目链接:Codeforces Round #433 (Div. 2) codeforces 854 A. Fraction[水] 题意:已知分子与分母的和,求分子小于分母的 最大的最简分数. #in ...

  2. 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不可约分,如果存在多组满足 ...

  3. Codeforces Round#433 简要题解

    来自FallDream的博客,未经允许,请勿转载,谢谢. 我的号自从几个月前姿势水平过低疯狂掉分之后就没动过了  突然想上点分  就打了一场Div1  没想到打到了rank5  一发上橙了,可还行. ...

  4. [Codeforces Round #433][Codeforces 853C/854E. Boredom]

    题目链接:853C - Boredom/854E - Boredom 题目大意:在\(n\times n\)的方格中,每一行,每一列都恰有一个被标记的方格,称一个矩形为漂亮的当且仅当这个矩形有两个角是 ...

  5. Codeforces Round #433 Div. 1

    A:显然从大到小排序后贪心放在第一个能放的位置即可.并查集维护. #include<iostream> #include<cstdio> #include<cmath&g ...

  6. codeforces 853b//Jury Meeting// Codeforces Round #433 (Div. 1)

    题意:几个人要去一个城市k天,现给出各航班的日期和花费,让这n个人能相会k天的最小花费? 用数组arr1[i]记录在第i天人到齐的最小花费.arr2[i]记录第i天之后才有人开始走的最小花费.然后取a ...

  7. 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 ...

  8. 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 ...

  9. 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 ...

随机推荐

  1. 树莓派i2c功能

    默认i2c是关闭的,用raspi-config 命令,会弹出一个配置框图 选择enable i2c就可以了 reboot之后 没有在/dev/目录下发现i2c-x的设备,这个时候需要做以下操作 1.添 ...

  2. Django打造大型企业官网

    第1章 Django预热 1-为什么需要虚拟环境 2-virtualenv创建虚拟环境 3-virtualenvwrapper使用 4-URL组成部分讲解 5-课程准备工作 6-Django介绍 第2 ...

  3. 使用hibernate连接Oracle时的权限问题

    在使用hibernate对象关系映射连接和创建表的时候,会涉及到很多权限问题,有些数据库管理会将权限设的很细,我们可以根据后台日志错误和异常信息作出判断. 比如下图所示这个错误(这是我在给银行投产系统 ...

  4. anaconda常用的命令

    常用操作命令: 一.环境操作 1.查看环境管理的全部命令帮助: conda env -h 2.查看当前系统下的环境: conda info -e 3.创建环境: conda create env_na ...

  5. 相关系数之杰卡德相似系数(Jaccardsimilarity coefficient)

    杰卡德相似系数(Jaccardsimilarity coefficient) (1)杰卡德相似系数 两个集合A和B交集元素的个数在A.B并集中所占的比例,称为这两个集合的杰卡德系数,用符号 J(A,B ...

  6. HDU 1698 Just a Hook(线段树区间覆盖)

    线段树基本操作练习,防手生 #include <cstdio> #include <cstring> #include <cstdlib> #define lson ...

  7. vue实战(一):利用vue与ajax实现增删改查

    vue实战(一):利用vue与ajax实现增删改查: <%@ page pageEncoding="UTF-8" language="java" %> ...

  8. [译]如何根据条件从pandas DataFrame中删除不需要的行?

    问题来源:https://stackoverflow.com/questions/13851535/how-to-delete-rows-from-a-pandas-dataframe-based-o ...

  9. (转载)MYSQL千万级数据量的优化方法积累

    转载自:http://blog.sina.com.cn/s/blog_85ead02a0101csci.html MYSQL千万级数据量的优化方法积累 1.分库分表 很明显,一个主表(也就是很重要的表 ...

  10. C++版本的C标准库头文件的特点

    C++标准库中除了定义C++语言特有的功能外,也兼容了C语言的标准库.C语言的头文件形如name.h,C++则将这些文件命名为cname.也就是去掉了.h后缀,而在文件名name之前添加了字母c,这里 ...