codeforce R 491 (div2)
本来打完就想写的,,奈何舍友要睡了,我开个台灯感觉怪怪的,就没写。
A题竟然一开始wa了。。。后来发现对于c和a还有c和b的关系没有判断,,丢掉了很多罚时。
B题我的方法是 计算 sum,然后 分别统计 2、3、4的个数,一个一个试,具体看代码(前面快速io有点长见谅
- package R491;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.util.StringTokenizer;
- public class Main2 {
- static BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
- static StringTokenizer tok;
- static boolean hasNext()
- {
- while(tok==null||!tok.hasMoreTokens())
- try{
- tok=new StringTokenizer(in.readLine());
- }
- catch(Exception e){
- return false;
- }
- return true;
- }
- static String next()
- {
- hasNext();
- return tok.nextToken();
- }
- static long nextLong()
- {
- return Long.parseLong(next());
- }
- static int nextInt()
- {
- return Integer.parseInt(next());
- }
- static PrintWriter out=new PrintWriter(new OutputStreamWriter(System.out));
- public static void main(String[] args) {
- int n = nextInt();
- int a[] = new int[n];
- int b[] = new int[8];
- int sum = 0;
- for(int i=0;i<n;i++){
- a[i] = nextInt();
- b[a[i]]++;
- sum+=a[i];
- }
- int num = 0;
- while (sum<4.5*n){
- if (b[2]>0){
- sum+=3;
- b[2]--;
- num++;
- }else if (b[3]>0){
- sum+=2;
- b[3]--;
- num++;
- }else if (b[4]>0){
- sum+=1;
- b[4]--;
- num++;
- }
- }
- out.print(num);
- out.flush();
- }
- }
C 一开始还以为可能有点意思,然后二分板子就出来了,没啥可说的,中间竟然wa了一发,,很玄学, ,判断时 如果 把 num1>=num2 写成 num1>=(double)n/2 就会wa。。。
- package R491;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.util.StringTokenizer;
- public class Main3 {
- static BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
- static StringTokenizer tok;
- static boolean hasNext()
- {
- while(tok==null||!tok.hasMoreTokens())
- try{
- tok=new StringTokenizer(in.readLine());
- }
- catch(Exception e){
- return false;
- }
- return true;
- }
- static String next()
- {
- hasNext();
- return tok.nextToken();
- }
- static long nextLong()
- {
- return Long.parseLong(next());
- }
- static int nextInt()
- {
- return Integer.parseInt(next());
- }
- static PrintWriter out=new PrintWriter(new OutputStreamWriter(System.out));
- static long n;
- public static void main(String[] args) {
- n = nextLong();
- long l = 1;
- long r = n;
- while (l<=r){
- long mid=(l+r)/2;
- if (caneat(mid)){
- r=mid-1;
- }else {
- l=mid+1;
- }
- }
- out.print(l);
- out.flush();
- }
- public static boolean caneat(long k){
- long num=0;
- long num2 = 0;
- long temp = n;
- while (temp>0){
- if (temp<k){
- num+=temp;
- break;
- }
- num+=k;
- temp-=k;
- num2+=(temp/10);
- temp-=temp/10;
- }
- if (num>=num2){
- return true;
- }else {
- return false;
- }
- }
- }
D题就很和蔼可亲了,竟然只有两行,直接暴力,我的方法是 umm懒得说看代码吧
- package R491;
- import java.io.BufferedReader;
- import java.io.InputStreamReader;
- import java.io.OutputStreamWriter;
- import java.io.PrintWriter;
- import java.util.StringTokenizer;
- public class Main4 {
- static BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
- static StringTokenizer tok;
- static boolean hasNext()
- {
- while(tok==null||!tok.hasMoreTokens())
- try{
- tok=new StringTokenizer(in.readLine());
- }
- catch(Exception e){
- return false;
- }
- return true;
- }
- static String next()
- {
- hasNext();
- return tok.nextToken();
- }
- static long nextLong()
- {
- return Long.parseLong(next());
- }
- static int nextInt()
- {
- return Integer.parseInt(next());
- }
- static PrintWriter out=new PrintWriter(new OutputStreamWriter(System.out));
- public static void main(String[] args) {
- String s[] = new String[2];
- for(int i=0;i<2;i++){
- s[i] = next();
- }
- if (s[0].length()==1){
- out.print(0);
- out.flush();
- return;
- }
- char ch1[] = s[0].toCharArray();
- char ch2[] = s[1].toCharArray();
- int ans = 0;
- for(int i=0;i<ch1.length;i++){
- if (ch1[i]=='0'&&ch2[i]=='0'){
- if (i==0){
- if (ch1[i+1]=='0'){
- ans++;
- ch1[i+1]='X';
- ch1[i]=ch2[i]='X';
- }else if (ch2[i+1]=='0'){
- ans++;
- ch2[i+1]='X';
- ch1[i]=ch2[i]='X';
- }
- }else if (i<ch1.length-1){
- if (ch1[i-1]=='0'){
- ans++;
- ch1[i-1]='X';
- ch1[i]=ch2[i]='X';
- }else if (ch2[i-1]=='0'){
- ans++;
- ch2[i-1]='X';
- ch1[i]=ch2[i]='X';
- }else if (ch1[i+1]=='0'){
- ans++;
- ch1[i+1]='X';
- ch1[i]=ch2[i]='X';
- }else if (ch2[i+1]=='0'){
- ans++;
- ch2[i+1]='X';
- ch1[i]=ch2[i]='X';
- }
- }else if (i== ch1.length-1) {
- if (ch1[i - 1] == '0') {
- ans++;
- ch1[i - 1] = 'X';
- ch1[i] = ch2[i] = 'X';
- } else if (ch2[i - 1] == '0') {
- ans++;
- ch2[i - 1] = 'X';
- ch1[i] = ch2[i] = 'X';
- }
- }
- }
- }
- out.print(ans);
- out.flush();
- }
- }
E 啊哈哈哈哈,尴尬而不失礼貌的微笑,因为我太弱了又很垃圾还是一个数学白痴所以我没写出来。。。
F学长都没写。。。学长51分钟过掉ABCDE好像就开始挂机了,发现F有点难就睡觉去了,然后D题掉了,囍。
近期:补一下排列组合,抓紧学个tarjan把前天的E题补掉。(对不起是我太弱了不会tarjan
rating:1548
忽然发现今晚还有一场,我可能要1600+了欸嘿嘿嘿。
codeforce R 491 (div2)的更多相关文章
- Codeforce Round #216 Div2
e,还是写一下这次的codeforce吧...庆祝这个月的开始,看自己有能,b到什么样! cf的第二题,脑抽的交了错两次后过了pretest然后system的挂了..脑子里还有自己要挂的感觉,果然回头 ...
- Codeforce Round #211 Div2
真的是b到不行啊! 尼玛C题一个这么简单的题目没出 aabbccddee 正确的是aabccdee 我的是 aabcdee 硬是TM的不够用,想半天还以为自己的是对的... A:题... B:题. ...
- CodeForce Educational round Div2 C - Vasya and Robot
http://codeforces.com/contest/1073/problem/C 题意:给你长度为n的字符串,每个字符为L, R, U, D.给你终点位置(x, y).你每次出发的起点为( ...
- codeforces R 493 div2
我蓝了!蓝了!!!蒟蒻的蓝色.日常点开friend发现竟然没几个人打??然后去div1看了一下果然学长全都去打div1了呜呜呜. 看到了久违的黄大仙,以为他今晚要上grandmaster,结果打完发现 ...
- EC R 87 div2 D. Multiset 线段树 树状数组 二分
LINK:Multiset 主要点一下 二分和树状数组找第k大的做法. 线段树的做法是平凡的 开一个数组实现就能卡过. 考虑如树状数组何找第k大 二分+查询来判定是不优秀的. 考虑树状数组上倍增来做. ...
- CF R 639 div2 F Review 贪心 二分
LINK:Résumé Review 这道题让我眼前一亮没想到二分这么绝. 由于每个\(b_i\)都是局部的 全局只有一个限制\(\sum_{i=1}^nb_i=k\) 所以dp没有什么用 我们只需要 ...
- CF R 635 div2 1337D Xenia and Colorful Gems 贪心 二分 双指针
LINK:Xenia and Colorful Gems 考试的时候没想到一个很好的做法. 赛后也有一个想法. 可以考虑答案的样子 x,y,z 可以发现 一共有 x<=y<=z,z< ...
- E CF R 85 div2 1334E. Divisor Paths
LINK:Divisor Paths 考试的时候已经想到结论了 可是质因数分解想法错了 导致自闭. 一张图 一共有D个节点 每个节点x会向y连边 当且仅当y|x,x/y是一个质数. 设f(d)表示d的 ...
- CF R 632 div2 1333F Kate and imperfection
赛后看了半天题 才把题目看懂 英语水平极差. 意思:定义一个集合S的权值为max{gcd(a,b)};且\(a\neq b\) 这个集合可以从1~n中选出一些数字 求出当集合大小为k时的最小价值. 无 ...
随机推荐
- linux > 和 >> 、< 区别
linux中经常会用到将内容输出到某文件当中,只需要在执行命令后面加上>或者>>号即可进入操作. 大于号:将一条命令执行结果(标准输出,或者错误输出,本来都要打印到屏幕上面的)重定向 ...
- iOS:如何实现在文字上添加拼音
一.介绍 最近项目有一个需求,需要给朗诵的文字添加对应的拼音,而且要求使用原生的控件实现.一开始听到这个需求挺懵逼的,感觉有点难.后来,静下来想一下,其实还是可以实现的,无非就是自定义了.下面,就来说 ...
- IndexDB 操作util
https://dexie.org/ https://www.tangshuang.net/5668.html https://github.com/tangshuang/hello-indexedd ...
- redis批量删除key 远程批量删除key
一.遇到的问题 在开发的过程中,经常会遇到要批量删除某种规则的key,如缓存的课程数据“course-课程uid”,其中课程uid是变量,我们需要删除"course-*"这一类的数 ...
- 卷积神经网络(CNN)代码实现(MNIST)解析
在http://blog.csdn.net/fengbingchun/article/details/50814710中给出了CNN的简单实现,这里对每一步的实现作个说明: 共7层:依次为输入层.C1 ...
- git合并指定文件到另一分支
经常被问到如何从一个分支合并特定的文件到另一个分支.其实,只合并你需要的那些commits,不需要的commits就不合并进去了. 合并某个分支上的单个commit 首先,用git log或sourc ...
- PHP会员找回密码功能实现实例介绍
设置思路 1.用户注册时需要提供一个E-MAIL邮箱,目的就是用该邮箱找回密码. 2.当用户忘记密码或用户名时,点击登录页面的“找回密码”超链接,打开表单,并输入注册用的E-MAIL邮箱,提交. 3. ...
- Windows系统下安装zabbix客户端
简单介绍如何在windows系统下安装zabbix客户端 1. 首先下载和zabbix服务端大版本相同的windows客户端 例如我服务端安装的是zabbix-3.4.14.tar.gz ...
- .NET Core+NLog+存储配置 日志存入到数据库
nlog-config.xml 配置文件: <?xml version="1.0" encoding="utf-8" ?> <nlog xml ...
- csv.writer写入文件有多余的空行
在用csv.writer写入文件的时候发现中间有多余的空行. 最早打开方式只是‘w’,会出现多余的空行,网上建议使用binary形式‘wb’打开可以解决问题: with open('egg2.csv' ...