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时的最小价值. 无 ...
随机推荐
- MySql的优化步骤
MySql优化的一般步骤: 1.通过show status 命令了解各种sql的执行效率 SHOW STATUS提供msyql服务器的状态信息 一般情况下,我们只需要了解以”Com”开头的指令 sho ...
- Huawei® ENSP & VRP CheatSheet
#################### 系统命令 #################### system-view sysname display current-configuration und ...
- 微软 microsoft calendar control 11.0 控件下载
微软 microsoft calendar control 11.0 控件下载 https://files.cnblogs.com/files/mqingqing123/csccal2.rar
- 国密SM3算法在linux和windows平台结果不一致问题
什么是sm3,是一种类似于sha256的哈希算法,是咱们国家的哈希标准算法: 最近在使用sm3算法时,同样的一份数据,调用同样的sm3接口,发现得到的结果是不一样的: 那么在应用过的过程中,如果同样的 ...
- 转:C# Delegate委托 1
Delegate中文翻译为“委托”.MSDN中对Delegate的解释如下: C#中的委托类似于C或C++中的函数指针.使用委托使程序员可以将方法引用封装在委托对象内.然后可以将该委托对象传递给可调用 ...
- react diff 原理
(1) 把树形结构按照层级分解,只比较同级元素.(2) 列表结构的每个单元添加唯一的 key 属性,方便比较.(3) React 只会匹配相同 class 的 component(这里面的 class ...
- 关于snowflake算法生成的ID转换为JS的数字类型由于过大导致JS精度丢失的问题
JS的数字类型目前支持的最大值为:9007199254740992,一旦数字超过这个值,JS将会丢失精度,导致前后端的值出现不一致. JAVA的Long类型的 最大值为:922337203 ...
- Jmeter执行python脚本函数使用说明
一.下载地址插件百度网盘下载地址:https://pan.baidu.com/s/1SvJjyThsXYryXuEEg9rm3g提取码:q9hd 二.使用说明1.将下载的jmeter-function ...
- CountDownLatch、CyclicBarrier和Semaphore 使用示例及原理
备注:博客园的markDown格式支持的特别不友好.也欢迎查看我的csdn的此篇文章链接:CountDownLatch.CyclicBarrier和Semaphore 使用示例及原理 CountDow ...
- js 性能优化利器:prepack
1. js 性能优化 js 本身是没有像 python 一样的预编译功能,更没有像 java 一样的编译功能,所以,这里所说的 js 代码预编译 只是通过工具实现的类似功能而已. 这就要提到 prep ...