我会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. XPivot 用户手册及版本更新公示

    此文仅介绍XPivot的通用功能,如有对项目中定制的高级功能感兴趣的可留言讨论 XPivot当前版本v2.2 [2015-04-20发布] v2.1 下载链接: http://pan.baidu.co ...

  2. 「日常训练」 Soldier and Number Game (CFR304D2D)

    题意 (Codeforces 546D) 给定一个数x=a!b!" role="presentation">x=a!b!x=a!b!的形式,问其中有几个质因数. 分 ...

  3. Selenium搭配TestNG

    用Maven来构建TestNG依赖: <dependency> <groupId>org.testng</groupId> <artifactId>te ...

  4. sqlserver2012 查询远程数据库

    EXEC sp_addlinkedserver 'LinkName','','SQLOLEDB','121.43.177.236'EXEC sp_addlinkedsrvlogin 'LinkName ...

  5. hibernate延时加载机制

    延迟加载: 延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作.在Hibernate中提供了对实体对象的延迟加载以及对集合的延迟加载,另 ...

  6. POJ 2186 Popular Cows(强联通+缩点)

    Description Every cow's dream is to become the most popular cow in the herd. In a herd of N (1 <= ...

  7. [boost-3] 函数对象

    boost库学习: 函数对象,成为‘高阶函数’,可以呗传入到其他函数或者从其他函数返回的一类函数. Boost.Bind可替换来自c++标准中的std::bind1st()和std::bind2dn( ...

  8. Uuuuuunity

    foreach http://blog.csdn.net/byondocean/article/details/6871881 yield  http://www.cnblogs.com/CareyS ...

  9. Mybatis学习系列(五)关联查询

    前面几节的示例基本都是一些单表查询,实际项目中,经常用到关联表的查询,比如一对一,一对多等情况.在Java实体对象中,一对一和一对多可是使用包装对象解决,属性使用List或者Set来实现,在mybat ...

  10. 从零开始配置Jenkins(一)——基本配置

    [背景] 由于项目变动,需要重新搭建jenkins环境,并在新搭建的平台下进行配置.之前,小编只是照猫画虎的用jenkins手动构建,虽然也维护过一段时间,但对于其中的原理并不是很了解.这下可好了,学 ...