博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
codeforces 412div.2
阅读量:4618 次
发布时间:2019-06-09

本文共 3178 字,大约阅读时间需要 10 分钟。

    A
    B
    C
    D
    E

点击题号进入题面

---------

新笔记本终于到了,可以愉快的写代码了..

------

A 807A

题意:

  给一个codeforces比赛的final standing和比赛前后的rating值,保证不存在一样的rating,

  问你是否能知道本场比赛是否计分,如果不能判断则输出maybe

分析:

  遍历即可

  有人变化直接输出rated,无人变化如果不是顺序则unrated,否则maybe

1 /********************** 2 *@Name: 3 * 4 *@Author: Nervending 5 *@Describtion: 6 *@DateTime: 2018-02-04 03:39:20 7 ***********************/ 8 #include 
9 using namespace std;10 const int maxn=1e5+10;11 const int INF=0x3f3f3f3f;12 int n;13 int a[maxn];14 int b[maxn];15 int c[maxn];16 int cmp(int a,int b){17 return a>b;18 }19 int main(){20 //#define test21 #ifdef test22 freopen("in.txt","r",stdin);23 freopen("out.txt","w",stdout);24 #endif25 cin>>n;26 for(int i=0;i
>a[i]>>b[i];28 c[i]=a[i];29 }30 sort(c,c+n,cmp);31 for(int i=0;i
a[i-1]){39 cout<<"unrated";40 return 0;41 }42 }43 cout<<"maybe";44 45 #ifdef test46 fclose(stdin);47 fclose(stdout);48 system("out.txt");49 #endif50 return 0;51 }
View Code

------

B 807B

题意:

  在一场CF比赛中,需要至少达到y分,当前以及获得足够的x分,x>=y

  除此之外,为了获得奖品,你需要改变自己的分数使得当前分数x经过下列伪代码获得的名次值中存在你的当前名次a

  通过hack的成功和失败可以改变自己的分数x,成功加100失败减50

  求最小的成功次数,输入保证有解

i := (s div 50) mod 475 repeat 25 times:     i := (i * 96 + 42) mod 475     print (26 + i)

分析:

  枚举即可

  先尝试只失败不成功

  然后尝试成功,每次测试也尝试额外失败一次的情况

1 /********************** 2 *@Name: 3 * 4 *@Author: Nervending 5 *@Describtion: 6 *@DateTime: 06/02/18 22:05 7 ***********************/ 8 #include 
9 using namespace std;10 const int maxn=1e5+10;11 const int maxm=1e6+10;12 const int INF=0x3f3f3f3f;13 #define show(x) cout<<#x<<"="<
<< endl14 int a,x,y;15 int check(int s){16 int na=(s/50)%475;17 for(int i=0;i<25;i++){18 na=(na*96+42)%475;19 if(a==na+26)return true;20 }21 return false;22 }23 24 int main() {25 //#define test26 #ifdef test27 freopen("in.txt","r",stdin);28 freopen("out.txt","w",stdout);29 #endif30 cin>>a>>x>>y;31 for(int i=x;i>=y;i-=50){32 if(check(i)){33 cout<<0;34 return 0;35 }36 }37 for(int i=x+100,j=1;;j++,i+=100){38 if(check(i)||check(i-50)){39 cout<
View Code

-------

C 807C

题意;

  你当前的成功次数是x,总次数是y,你希望比值达到a/b,求最小的尝试次数,不存在输出-1

分析:

  可以发现,只需要总次数达到b的整数倍即可,最小的合法倍数必然为解

  成功次数只要为正值且小于总次数即可

  二分枚举倍数即可以获得答案

  注意是可能不存在解的,比如a==b而x!=y,或者a==0而x!=0,可以预先剪枝

1 /********************** 2 *@Name: 3 * 4 *@Author: Nervending 5 *@Describtion: 6 *@DateTime: 7 ***********************/ 8 #include 
9 #define show(x) cout<<#x<<"="<
<
>casn;29 while(casn--){30 cin>>x>>y>>a>>b;31 if((a==b&&x!=y)||(a==0&&x!=0)){32 cout<<-1<
>1;39 ll ac=mid*a;40 ll at=mid*b;41 if(ac>=x&&at>=y&&ac-x<=at-y){42 ans=at-y;43 r=mid-1;44 }else {45 l=mid+1;46 }47 }48 if(ans==-1)cout<<-1<
View Code

 

转载于:https://www.cnblogs.com/nervendnig/p/8427289.html

你可能感兴趣的文章
iOS---初识Swift(一)
查看>>
蓝桥杯幸运数(线段树)
查看>>
uva 557 Burger
查看>>
python manage.py 命令
查看>>
HashMap源码解析
查看>>
PowerPCB(PADS)常见问题全集
查看>>
OC 冒泡排序 -- 核心代码
查看>>
OC & java 对比
查看>>
巩固java(一)----java与对象
查看>>
软件开发项目的人力资源管理 - 团队配置问题探讨
查看>>
整合Mybatis框架相关
查看>>
rem适配
查看>>
Actionbarsherlock Demo 浅析 :Custom Navigation
查看>>
Sql server之路 (二)登录本地服务器
查看>>
(转)cygwin个性化配置
查看>>
文件拷贝
查看>>
整理好的一些mysql表详细操作
查看>>
Eigen学习笔记2-Matrix类
查看>>
开发时用于文件前说明
查看>>
查询练习(45道题)
查看>>