cf一如既往挺丧

看丧题点我

【A】分数

Petya是数学迷,特别是有关于分数的数学。
最近他学了所谓一个分数被叫做“真分数”当且仅当其分子小于分母,而一个分数被叫做“最简分数”当且仅当其分子分母互质。
在闲暇时间,Petya在用计算器研究:如何把最简真分数转换为小数等问题。有一天他不小心把除号(÷)按成了加号(+),导致他得到了分子与分母的和。
Petya想要得到他原来的分数,但他很快发现这不是唯一的。所以现在他想要知道最大的最简真分数使得其分子与分母的和为n。

输入

一个正整数,n(3<=n<=1000)。

输出

两个数,最大的最简真分数的分子与分母。

样例输入1

3

样例输出1

1 2

样例输入2

6

样例输出2

1 5

题解

很简单的一题。枚举分子算分母,判断分子分母的gcd是否为1。

  1. #include<cstdio>
  2. int gcd(int x,int y){return y?gcd(y,x%y):x;}
  3. int n,ans;
  4. int main(){
  5. scanf("%d",&n);
  6. for(int i=;(i<<)<n;++i) if(gcd(i,n-i)==) ans=i;
  7. printf("%d %d\n",ans,n-ans);
  8. return ;
  9. }

【B】Maxim买公寓

Maxim要买公寓。Maxim要住在首府线条大道的一栋房子里。这栋房子有n个单间,排列在一条线上。有些单间有人住,而有些待售。
Maxim喜欢去拜访他的邻居,所以他觉得,如果这间公寓待售,且相邻的公寓里有人住,这间公寓就是的。
Maxim知道这n间公寓中,有k个是有人住的。他想知道的公寓的最大和最小数量。

输入

两个数,n,k。(1<=n<=10^9, 0<=k<=n)

输出

两个数,公寓的最大和最小数量。

题解

很水啊。分四类讨论:
① k=0 : 0 0。
② 0<3k<=n : 1 2k。
③ n<3k<3n : 1 n-k。
④ k=n : 0 0。

  1. #include<cstdio>
  2. int n,k;
  3. int main(){
  4. scanf("%d%d",&n,&k);
  5. if(k==n||k==){puts("0 0");return ;}
  6. printf("1 ");
  7. if(k*3ll<=n) printf("%d",*k);
  8. else printf("%d",n-k);
  9. return ;
  10. }

【C】计划

【D】评委会议

有点难打,不会丧。

天府之国很快要举行大都会运动会,这意味着所有的运动会评委必须来到首府(首都)举行一次会议。

有n+1个城市编号从0~n,0号城市是首府,评委们的见面地点。而编号1~n的城市中,每个城市恰好有一个评委。会议要讨论的内容十分复杂,要持续k天,每天每个评委都必须在首府以便于解决问题。

你知道了天府之国的航班表(共m趟航班)(评委们十分高冷,只愿意搭飞机出行)。天府之国的所有航班要不然是从首府起飞,要不然是在首府落地,而且没有夜间飞行,这意味着航班只会飞一天,旅客登机和下飞机是在同一天。在评委到达和离开首府的当天,他无法参与会议。

把所有人聚集到首府是很难的,而要计算其最小费用更是难上加难。虽然如此,你还是要求出最便宜的一种方法,让所有的评委来到首府,开k天的会再安全离开首府回到自己的家乡。

输入

第一行,三个正整数,n,m,k。
接下来m行,每行三个数,di,fi,ti,ci,分别表示第i趟航班的时间,出发城市,到达城市以及费用。

输出

最小费用,如果无法做到,输出-1。

样例输入

2 6 5
1 1 0 5000
3 2 0 5500
2 2 0 6000
15 0 2 9000
9 0 1 7000
8 0 2 6500

样例输出

24500

题解

①航班按时间排序
②求出两个航班Min,Max,满足1~Min的航班中,所有评委可以到达首府,Max~m的航班中,所有评委可以离开首府
③计算Min+1~Max-1中的最小费用。
④双指针扫描

  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<iostream>
  4. #include<cstring>
  5. #define F(i,a,b) for(int i=a;i<=b;++i)
  6. #define dF(i,a,b) for(int i=a;i>=b;--i)
  7. #define F2(i,a,b) for(int i=a;i<b;++i)
  8. using namespace std;
  9. int n,m,k,d[],f[],t[],c[],I[];
  10. inline int Min(int x,int y){return x<y?x:y;}
  11. inline long long Min(long long x,long long y){return x<y?x:y;}
  12. inline bool cmp(int p1,int p2){return d[p1]<d[p2];}
  13. int Dep[],Depnum,Arr[],Arrnum;
  14. int Minmeet=-,Maxmeet=-,Mini,Maxi;
  15. int CityD[],CityA[];
  16. long long MinDC[],MinAC[],Ans=9999999999999999ll;
  17. void init(){
  18. scanf("%d%d%d",&n,&m,&k);
  19. F(i,,m) scanf("%d%d%d%d",d+i,f+i,t+i,c+i),I[i]=i;
  20. sort(I+,I+m+,cmp);
  21. // puts("====");
  22. // F(i,1,m) printf("%d %d %d %d\n",d[I[i]],f[I[i]],t[I[i]],c[I[i]]);
  23. // puts("====");
  24. }
  25. int main(){
  26. init();
  27. F(i,,m){
  28. if(t[I[i]]==){
  29. CityD[f[I[i]]]=Min(CityD[f[I[i]]],c[I[i]]);
  30. if(!Dep[f[I[i]]])
  31. CityD[f[I[i]]]=c[I[i]], Dep[f[I[i]]]=, ++Depnum;
  32. }
  33. if(Depnum==n) {Minmeet=d[I[i]]+; Mini=i; break;}
  34. }
  35. dF(i,m,){
  36. if(f[I[i]]==){
  37. CityA[t[I[i]]]=Min(CityA[t[I[i]]],c[I[i]]);
  38. if(!Arr[t[I[i]]])
  39. CityA[t[I[i]]]=c[I[i]], Arr[t[I[i]]]=, ++Arrnum;
  40. }
  41. if(Arrnum==n) {Maxmeet=d[I[i]]-; Maxi=i; break;}
  42. }
  43. // printf("Meeting: %d - %d\n",Minmeet,Maxmeet);
  44. if(Minmeet==-||Maxmeet==-||Maxmeet-Minmeet+<k) {puts("-1"); return ;}
  45. F(i,,n) MinDC[Mini]+=CityD[i];
  46. F(i,,n) MinAC[Maxi]+=CityA[i];
  47. F(i,Mini+,m){
  48. MinDC[i]=MinDC[i-];
  49. if(t[I[i]]==)
  50. if(CityD[f[I[i]]]>c[I[i]]) MinDC[i]-=CityD[f[I[i]]]-c[I[i]], CityD[f[I[i]]]=c[I[i]];
  51. }
  52. dF(i,Maxi-,){
  53. MinAC[i]=MinAC[i+];
  54. if(f[I[i]]==)
  55. if(CityA[t[I[i]]]>c[I[i]]) MinAC[i]-=CityA[t[I[i]]]-c[I[i]], CityA[t[I[i]]]=c[I[i]];
  56. }
  57. // F(i,Mini,m) printf("%I64d ",MinDC[i]); puts("");
  58. // F(i,1,Maxi) printf("%I64d ",MinAC[i]); puts("");
  59. for(int i=Mini,j=Mini;i<=Maxi&&j<=Maxi;++i){
  60. while(j<=Maxi&&d[I[j]]-d[I[i]]-<k) ++j;
  61. if(j>Maxi) break;
  62. Ans=Min(Ans,MinDC[i]+MinAC[j]);
  63. }
  64. cout<<Ans;
  65. return ;
  66. }

【E】烦闷

丧,目测神秘数结

【codeforces】【比赛题解】#854 CF Round #433 (Div.2)的更多相关文章

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

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

  2. 竞赛题解 - CF Round #524 Div.2

    CF Round #524 Div.2 - 竞赛题解 不容易CF有一场下午的比赛,开心的和一个神犇一起报了名 被虐爆--前两题水过去,第三题卡了好久,第四题毫无头绪QwQ Codeforces 传送门 ...

  3. CF Round #551 (Div. 2) D

    CF Round #551 (Div. 2) D 链接 https://codeforces.com/contest/1153/problem/D 思路 不考虑赋值和贪心,考虑排名. 设\(dp_i\ ...

  4. CF Round #510 (Div. 2)

    前言:没想到那么快就打了第二场,题目难度比CF Round #509 (Div. 2)这场要难些,不过我依旧菜,这场更是被\(D\)题卡了,最后\(C\)题都来不及敲了..最后才\(A\)了\(3\) ...

  5. CF Round #600 (Div 2) 解题报告(A~E)

    CF Round #600 (Div 2) 解题报告(A~E) A:Single Push 采用差分的思想,让\(b-a=c\),然后观察\(c\)序列是不是一个满足要求的序列 #include< ...

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

  7. cf Round#273 Div.2

    题目链接,点击一下 Round#273 Div.2 ================== problem A Initial Bet ================== 很简单,打了两三场的cf第一 ...

  8. 【codeforces】【比赛题解】#960 CF Round #474 (Div. 1 + Div. 2, combined)

    终于打了一场CF,不知道为什么我会去打00:05的CF比赛…… 不管怎么样,这次打的很好!拿到了Div. 2选手中的第一名,成功上紫! 以后还要再接再厉! [A]Check the string 题意 ...

  9. 【codeforces】【比赛题解】#937 CF Round #467 (Div. 2)

    没有参加,但是之后几天打了哦,第三场AK的CF比赛. CF大扫荡计划正在稳步进行. [A]Olympiad 题意: 给\(n\)个人颁奖,要满足: 至少有一个人拿奖. 如果得分为\(x\)的有奖,那么 ...

随机推荐

  1. springmvc+mybatis 处理图片(二):显示图片

    数据库及配置文件等参考:springmvc+mybatis 处理图片(一):上传图片思路:把图片二进制信息写入到HttpServletResponse 的outputStream输出流中来显示图片.一 ...

  2. Robot Framework 的安装配置和简单的实例介绍

    Robot Framework 介绍 Robot Framework 是一款基于 Python 的功能自动化测试框架.它具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进 ...

  3. ansible部署(pip安装)

    centos7 pip安装 ansible 首先ansible基于python2.X 环境 默认centos都已经安装好了python2环境 安装可选性 ansible可以通过源码,yum,pip等方 ...

  4. [BZOJ3295][Cqoi2011]动态逆序对 CDQ分治&树套树

    3295: [Cqoi2011]动态逆序对 Time Limit: 10 Sec  Memory Limit: 128 MB Description 对于序列A,它的逆序对数定义为满足i<j,且 ...

  5. 批量更新 A表的PK_ID字段

    UPDATE  ASET PK_ID=(SELECT ID FROM  B WHERE A.TAB_NAME=B.TAB_NAME AND B.IS_KEY='1' ) AB表 以TAB_NAME 做 ...

  6. BZOJ 3282: Tree

    3282: Tree Time Limit: 30 Sec  Memory Limit: 512 MBSubmit: 1714  Solved: 765[Submit][Status][Discuss ...

  7. 【poj3016】 K-Monotonic

    http://poj.org/problem?id=3016 (题目链接) 题意 给出一个数列,将一个数${a_i}$更改为${b_i}$的代价为${|a_i-b_i|}$.求将数列改为不递减的最小代 ...

  8. IDEA的强大

    由于朋友推荐,转战IDEA数日,发现一个字就是,牛,完爆任何开发工具,让你代码上瘾的工具. 它集合了所有的开发所需要的东西,且智能化方便,适合开发有一定经验的人去使用,你会爱上它. 下面是快捷键的使用 ...

  9. CentOS7单节点部署redis-cluster

    准备一台机器,系统版本为CentOS7.(注意本文描述的是redis-cluster,不是主从复制) 1.下载软件包 # wget http://download.redis.io/releases/ ...

  10. 【整体二分】【P3527】 [POI2011]MET-Meteors

    Description 有 n 个国家,总共占有一个环,环被分成了 m 段,已知有 k 次流星雨会落在这个环上的一些位置.再给出每个国家目标收集多少流星,对每个国家求出第几次流星雨后可以满足这个国家的 ...