AtCoder Beginner Contest 103
https://beta.atcoder.jp/contests/abc103
A - Task Scheduling Problem
Time Limit: 2 sec / Memory Limit: 1024 MB
Score : 100100 points
Problem Statement
You have three tasks, all of which need to be completed.
First, you can complete any one task at cost 00.
Then, just after completing the ii-th task, you can complete the jj-th task at cost |Aj−Ai||Aj−Ai|.
Here, |x||x| denotes the absolute value of xx.
Find the minimum total cost required to complete all the task.
Constraints
- All values in input are integers.
- 1≤A1,A2,A3≤1001≤A1,A2,A3≤100
Input
Input is given from Standard Input in the following format:
A1A1 A2A2 A3A3
Output
Print the minimum total cost required to complete all the task.
Sample Input 1 Copy
1 6 3
Sample Output 1 Copy
5
When the tasks are completed in the following order, the total cost will be 55, which is the minimum:
- Complete the first task at cost 00.
- Complete the third task at cost 22.
- Complete the second task at cost 33.
Sample Input 2 Copy
11 5 5
Sample Output 2 Copy
6
Sample Input 3 Copy
100 100 100
Sample Output 3 Copy
0 最大的减去最小的。
import java.util.Arrays;
import java.util.Scanner;
import static java.lang.Math.*;
public class Main { public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int [] a = new int[3];
for(int i = 0;i < 3;i ++) {
a[i] = in.nextInt();
}
Arrays.sort(a);
System.out.println(a[2] - a[0]);
}
}
B - String Rotation
Time Limit: 2 sec / Memory Limit: 1024 MB
Score : 200200 points
Problem Statement
You are given string SS and TT consisting of lowercase English letters.
Determine if SS equals TT after rotation.
That is, determine if SS equals TT after the following operation is performed some number of times:
Operation: Let S=S1S2...S|S|S=S1S2...S|S|. Change SS to S|S|S1S2...S|S|−1S|S|S1S2...S|S|−1.
Here, |X||X| denotes the length of the string XX.
Constraints
- 2≤|S|≤1002≤|S|≤100
- |S|=|T||S|=|T|
- SS and TT consist of lowercase English letters.
Input
Input is given from Standard Input in the following format:
SS
TT
Output
If SS equals TT after rotation, print Yes; if it does not, print No.
Sample Input 1 Copy
kyoto
tokyo
Sample Output 1 Copy
Yes
- In the first operation,
kyotobecomesokyot. - In the second operation,
okyotbecomestokyo.
Sample Input 2 Copy
abc
arc
Sample Output 2 Copy
No
abc does not equal arc after any number of operations.
Sample Input 3 Copy
aaaaaaaaaaaaaaab
aaaaaaaaaaaaaaab
Sample Output 3 Copy
Yes
排着遍历拼接。
import java.util.Arrays;
import java.util.Scanner;
import static java.lang.Math.*;
public class Main {
static boolean check(String a,String b) {
if(a.length() != b.length())return false;
for(int i = 0;i < a.length();i ++) {
if(a.charAt(i) == b.charAt(0) && (a.substring(i, a.length()) + a.substring(0, i)).equals(b)) {
return true;
}
}
return false;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String a = in.nextLine();
String b = in.nextLine();
System.out.println(check(a,b) ? "Yes" : "No");
}
}
C - Modulo Summation
Time Limit: 2 sec / Memory Limit: 1024 MB
Score : 300300 points
Problem Statement
You are given NN positive integers a1,a2,...,aNa1,a2,...,aN.
For a non-negative integer mm, let f(m)=(m mod a1)+(m mod a2)+...+(m mod aN)f(m)=(m mod a1)+(m mod a2)+...+(m mod aN).
Here, X mod YX mod Y denotes the remainder of the division of XX by YY.
Find the maximum value of ff.
Constraints
- All values in input are integers.
- 2≤N≤30002≤N≤3000
- 2≤ai≤1052≤ai≤105
Input
Input is given from Standard Input in the following format:
NN
a1a1 a2a2 ...... aNaN
Output
Print the maximum value of ff.
Sample Input 1 Copy
3
3 4 6
Sample Output 1 Copy
10
f(11)=(11 mod 3)+(11 mod 4)+(11 mod 6)=10f(11)=(11 mod 3)+(11 mod 4)+(11 mod 6)=10 is the maximum value of ff.
Sample Input 2 Copy
5
7 46 11 20 11
Sample Output 2 Copy
90
Sample Input 3 Copy
7
994 518 941 851 647 2 581
Sample Output 3 Copy
4527
一个数对多个数去摸和要最大。
对于m,m%a1最大值是a1 - 1,也就是说令m = t1 * a1 - 1(t1 >= 1)时m%a1最大,同样如果对于a1~n都满足m = ti * ai - 1,总和就会最大,实际上就是满足m = t1 * a1 - 1 = t2 * a2 - 1 = ...
= tn * an - 1,即t1 * a1 = t2 * a2 = ... = tn * an = m + 1,所以m + 1是a1~n的公倍数,是存在的。
答案就显而易见是所有属的和-n。
import java.util.Arrays;
import java.util.Scanner;
import static java.lang.Math.*;
public class Main {
static boolean check(String a,String b) {
if(a.length() != b.length())return false;
for(int i = 0;i < a.length();i ++) {
if(a.charAt(i) == b.charAt(0) && (a.substring(i, a.length()) + a.substring(0, i)).equals(b)) {
return true;
}
}
return false;
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int d;
int ans = -n;
for(int i = 0;i < n;i ++) {
d = in.nextInt();
ans += d;
}
System.out.println(ans);
}
}
D - Islands War
Time Limit: 2 sec / Memory Limit: 1024 MB
Score : 400400 points
Problem Statement
There are NN islands lining up from west to east, connected by N−1N−1 bridges.
The ii-th bridge connects the ii-th island from the west and the (i+1)(i+1)-th island from the west.
One day, disputes took place between some islands, and there were MM requests from the inhabitants of the islands:
Request ii: A dispute took place between the aiai-th island from the west and the bibi-th island from the west. Please make traveling between these islands with bridges impossible.
You decided to remove some bridges to meet all these MM requests.
Find the minimum number of bridges that must be removed.
Constraints
- All values in input are integers.
- 2≤N≤1052≤N≤105
- 1≤M≤1051≤M≤105
- 1≤ai<bi≤N1≤ai<bi≤N
- All pairs (ai,bi)(ai,bi) are distinct.
Input
Input is given from Standard Input in the following format:
NN MM
a1a1 b1b1
a2a2 b2b2
::
aMaM bMbM
Output
Print the minimum number of bridges that must be removed.
Sample Input 1 Copy
5 2
1 4
2 5
Sample Output 1 Copy
1
The requests can be met by removing the bridge connecting the second and third islands from the west.
Sample Input 2 Copy
9 5
1 8
2 7
3 5
4 6
7 9
Sample Output 2 Copy
2
Sample Input 3 Copy
5 10
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5
Sample Output 3 Copy
4
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
import static java.lang.Math.*;
class bridge{
public int a;
public int b;
public bridge() {
a = b = 0;
}
}
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int k = in.nextInt();
bridge [] s = new bridge[k];
for(int i = 0;i < k;i ++) {
s[i] = new bridge();
s[i].a = in.nextInt();
s[i].b = in.nextInt();
}
Arrays.sort(s,new Comparator<bridge>() {
public int compare(bridge x,bridge y) {
if(x.a == x.b)return x.b - y.b;
return x.a - y.a;
}
});
int ans = 0,r = 0;
for(int i = 0;i < k;i ++) {
if(s[i].a >= r) {
ans ++;
r = s[i].b;
}
else if(r > s[i].b)r = s[i].b;
}
System.out.println(ans);
}
}
AtCoder Beginner Contest 103的更多相关文章
- AtCoder Beginner Contest 100 2018/06/16
A - Happy Birthday! Time limit : 2sec / Memory limit : 1000MB Score: 100 points Problem Statement E8 ...
- AtCoder Beginner Contest 052
没看到Beginner,然后就做啊做,发现A,B太简单了...然后想想做完算了..没想到C卡了一下,然后还是做出来了.D的话瞎想了一下,然后感觉也没问题.假装all kill.2333 AtCoder ...
- AtCoder Beginner Contest 053 ABCD题
A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...
- AtCoder Beginner Contest 136
AtCoder Beginner Contest 136 题目链接 A - +-x 直接取\(max\)即可. Code #include <bits/stdc++.h> using na ...
- AtCoder Beginner Contest 137 F
AtCoder Beginner Contest 137 F 数论鬼题(虽然不算特别数论) 希望你在浏览这篇题解前已经知道了费马小定理 利用用费马小定理构造函数\(g(x)=(x-i)^{P-1}\) ...
- AtCoder Beginner Contest 076
A - Rating Goal Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Takaha ...
- AtCoder Beginner Contest 079 D - Wall【Warshall Floyd algorithm】
AtCoder Beginner Contest 079 D - Wall Warshall Floyd 最短路....先枚举 k #include<iostream> #include& ...
- AtCoder Beginner Contest 064 D - Insertion
AtCoder Beginner Contest 064 D - Insertion Problem Statement You are given a string S of length N co ...
- AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle【暴力】
AtCoder Beginner Contest 075 D - Axis-Parallel Rectangle 我要崩溃,当时还以为是需要什么离散化的,原来是暴力,特么五层循环....我自己写怎么都 ...
随机推荐
- the Determine in June
今天是6月10号,周三. 自己做的CSDN博客端(仿小巫博客,ps:里边的框架和代码优化都是自己又一次用新框架做的或者自己又一次实现)也已经有三天了.进度还差非常多--- 结合了上次投简历的经验和期末 ...
- Nginx绑定多个域名的方法
nginx绑定多个域名可又把多个域名规则写一个配置文件里,也可又分别建立多个域名配置文件,我一般为了管理方便,每个域名建一个文件,有些同类域名也可又写在一个总的配置文件里. 一.每个域名一个 ...
- Unix中库的使用
库有点像java中的jar包,但是使用起来要比jar包要麻烦一点. 库分为静态编程库和动态链接库两种. 库一旦设计出来就需要被可执行程序链接和调用. 可执行程序在编译时直接载入静态编程库,在运行时直接 ...
- CPI
CPI (Consumer Price Index 物价指数) 是政府用来衡量通货膨胀的其中一个数据.通俗的讲,CPI就是市场上的货物价格增长百分比.一般市场经济国家认为CPI在2-3%属于可接受范围 ...
- kfaka windows安装
1 官网下载 解压到D:\developTools\kfaka\kafka_2.10-0.9.0.0 2 windows cmd启动 新开cmd命令:cd /d D:\developTools\kfa ...
- 【Atheros】无线网卡驱动性能测试工具pktgen的使用
前言:从12年开始做无线驱动相关的工作,到13年大概做了一年半,现在歇了快一年了,以免白学那么久,最近重新整理了一下当时的资料,写一点文章,这方面的帖子比较少,当时碰到过很多问题难以解决,我是用的li ...
- EasyNVR RTSP转HLS(m3u8+ts)流媒体服务器前端构建之:bootstrap-datepicker日历插件的实时动态展现
EasyNVR中有对录像进行检索回放的功能,且先抛开录像的回放,为了更好的用户体验过.让用户方便快捷的找到对应通道对应日期的录像视频,是必须的功能. 基于上述的需求,为前端添加一个日历插件,在日历上展 ...
- idea创建普通java项目以及maven创建项目过程(转)
1. idea创建一个普通项目流程 http://blog.csdn.net/testcs_dn/article/details/52303941 2. idea创建maven项目流程 http:// ...
- Swift 学习笔记 (解决Swift闭包中循环引用的三种方法)
话不多说 直接上代码 class SmartAirConditioner { var temperature:Int = //类引用了函数 var temperatureChange:((Int)-& ...
- linux c编程:进程间通信
进程间的通信包括管道,共享内存,信号量通信,消息队列,套借口(socket)和全双工管道通信 首先来看下管道的用法:管道顾名思义,就如同下水道管道一样,当从管道一端流水到另一端的时候,水流的方向是单方 ...