A - Haiku


Time limit : 2sec / Memory limit : 256MB

Score : 100 points

Problem Statement

As a New Year's gift, Dolphin received a string s of length 19.
The string s has the following format: [five lowercase English letters],[seven lowercase English letters],[five lowercase English letters].
Dolphin wants to convert the comma-separated string s into a space-separated string.
Write a program to perform the conversion for him.

Constraints

  • The length of s is 19.
  • The sixth and fourteenth characters in s are ,.
  • The other characters in s are lowercase English letters.

Input

The input is given from Standard Input in the following format:

s

Output

Print the string after the conversion.


Sample Input 1

Copy
happy,newyear,enjoy

Sample Output 1

Copy
happy newyear enjoy

Replace all the commas in happy,newyear,enjoy with spaces to obtain happy newyear enjoy.


Sample Input 2

Copy
haiku,atcoder,tasks

Sample Output 2

Copy
haiku atcoder tasks

Sample Input 3

Copy
abcde,fghihgf,edcba

Sample Output 3

Copy
abcde fghihgf edcba
题意:根据样列猜题意
解法:模拟
 #include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
cin>>s;
for(int i=;i<s.length();i++)
{
if(s[i]!=',')
{
cout<<s[i];
}
else
{
cout<<" ";
}
}
}

B - Sum of Three Integers


Time limit : 2sec / Memory limit : 256MB

Score : 200 points

Problem Statement

You are given two integers K and S.
Three variable X,Y and Z takes integer values satisfying 0≤X,Y,ZK.
How many different assignments of values to X,Y and Z are there such that X+Y+Z=S?

Constraints

  • 2≤K≤2500
  • 0≤S≤3K
  • K and S are integers.

Input

The input is given from Standard Input in the following format:

K S

Output

Print the number of the triples of X,Y and Z that satisfy the condition.


Sample Input 1

Copy
2 2

Sample Output 1

Copy
6

There are six triples of X,Y and Z that satisfy the condition:

  • X=0,Y=0,Z=2
  • X=0,Y=2,Z=0
  • X=2,Y=0,Z=0
  • X=0,Y=1,Z=1
  • X=1,Y=0,Z=1
  • X=1,Y=1,Z=0

Sample Input 2

Copy
5 15

Sample Output 2

Copy
1

The maximum value of X+Y+Z is 15, achieved by one triple of X,Y and Z.

题意:看样列猜题意

解法:乍一看感觉是暴力,但不怎么妥当,我这里采用数组保存的方式 500+x+y==s-z记录符合要求的个数

 #include<bits/stdc++.h>
using namespace std;
int a[];
int main()
{
int k,s;
cin>>k>>s;
for(int i=;i<=k;i++)
{
for(int j=;j<=k;j++)
{
a[+i+j]++;
}
}
int sum=;
for(int i=;i<=k;i++)
{
int pos=s-i;
if(pos<)
{
continue;
}
sum+=a[+pos];
}
cout<<sum<<endl;
return ;
}

C - Back and Forth


Time limit : 2sec / Memory limit : 256MB

Score : 300 points

Problem Statement

Dolphin resides in two-dimensional Cartesian plane, with the positive x-axis pointing right and the positive y-axis pointing up.
Currently, he is located at the point (sx,sy). In each second, he can move up, down, left or right by a distance of 1.
Here, both the x- and y-coordinates before and after each movement must be integers.
He will first visit the point (tx,ty) where sx<tx and sy<ty, then go back to the point (sx,sy), then visit the point (tx,ty) again, and lastly go back to the point(sx,sy).
Here, during the whole travel, he is not allowed to pass through the same point more than once, except the points (sx,sy) and (tx,ty).
Under this condition, find a shortest path for him.

Constraints

  • −1000≤sx<tx≤1000
  • −1000≤sy<ty≤1000
  • sx,sy,tx and ty are integers.

Input

The input is given from Standard Input in the following format:

sx sy tx ty

Output

Print a string S that represents a shortest path for Dolphin.
The i-th character in S should correspond to his i-th movement.
The directions of the movements should be indicated by the following characters:

  • U: Up
  • D: Down
  • L: Left
  • R: Right

If there exist multiple shortest paths under the condition, print any of them.


Sample Input 1

Copy
0 0 1 2

Sample Output 1

Copy
UURDDLLUUURRDRDDDLLU

One possible shortest path is:

  • Going from (sx,sy) to (tx,ty) for the first time: (0,0) → (0,1) → (0,2) → (1,2)
  • Going from (tx,ty) to (sx,sy) for the first time: (1,2) → (1,1) → (1,0) → (0,0)
  • Going from (sx,sy) to (tx,ty) for the second time: (0,0) → (−1,0) → (−1,1) → (−1,2) → (−1,3) → (0,3) → (1,3) → (1,2)
  • Going from (tx,ty) to (sx,sy) for the second time: (1,2) → (2,2) → (2,1) → (2,0) → (2,−1) → (1,−1) → (0,−1) → (0,0)

Sample Input 2

Copy
-2 -2 1 1

Sample Output 2

Copy
UURRURRDDDLLDLLULUUURRURRDDDLLDL
题意:看样列猜题意
解法:根据提示进行模拟
 #include<bits/stdc++.h>
using namespace std;
int a[];
int main()
{
int sx, sy, tx, ty;
cin >> sx >> sy >> tx >> ty;
for(int i=;i<=ty-sy;i++)
{
cout<<"U";
}
for(int i=;i<=tx-sx;i++)
{
cout<<"R";
}
for(int i=;i<=ty-sy;i++)
{
cout<<"D";
}
for(int i=;i<=tx-sx;i++)
{
cout<<"L";
}
cout<<"L";
for(int i=;i<=ty-sy;i++)
{
cout<<"U";
}
cout<<"R";
for(int i=;i<=tx-sx;i++)
{
cout<<"R";
}
cout<<"D";
cout<<"R";
for(int i=;i<=ty-sy;i++)
{
cout<<"D";
}
cout<<"L";
for(int i=;i<=tx-sx;i++)
{
cout<<"L";
}
cout<<"U";
return ;
}

D - Candidates of No Shortest Paths


Time limit : 2sec / Memory limit : 256MB

Score : 400 points

Problem Statement

You are given an undirected connected weighted graph with N vertices and M edges that contains neither self-loops nor double edges.
The i-th (1≤iM) edge connects vertex ai and vertex bi with a distance of ci.
Here, a self-loop is an edge where ai=bi(1≤iM), and double edges are two edges where (ai,bi)=(aj,bj) or (ai,bi)=(bj,aj)(1≤i<jM).
connected graph is a graph where there is a path between every pair of different vertices.
Find the number of the edges that are not contained in any shortest path between any pair of different vertices.

Constraints

  • 2≤N≤100
  • N−1≤Mmin(N(N−1)⁄2,1000)
  • 1≤ai,biN
  • 1≤ci≤1000
  • ci is an integer.
  • The given graph contains neither self-loops nor double edges.
  • The given graph is connected.

Input

The input is given from Standard Input in the following format:

N M
a1 b1 c1
a2 b2 c2
:
aM bM cM

Output

Print the number of the edges in the graph that are not contained in any shortest path between any pair of different vertices.


Sample Input 1

Copy
3 3
1 2 1
1 3 1
2 3 3

Sample Output 1

Copy
1

In the given graph, the shortest paths between all pairs of different vertices are as follows:

  • The shortest path from vertex 1 to vertex 2 is: vertex 1 → vertex 2, with the length of 1.
  • The shortest path from vertex 1 to vertex 3 is: vertex 1 → vertex 3, with the length of 1.
  • The shortest path from vertex 2 to vertex 1 is: vertex 2 → vertex 1, with the length of 1.
  • The shortest path from vertex 2 to vertex 3 is: vertex 2 → vertex 1 → vertex 3, with the length of 2.
  • The shortest path from vertex 3 to vertex 1 is: vertex 3 → vertex 1, with the length of 1.
  • The shortest path from vertex 3 to vertex 2 is: vertex 3 → vertex 1 → vertex 2, with the length of 2.

Thus, the only edge that is not contained in any shortest path, is the edge of length 3 connecting vertex 2 and vertex 3, hence the output should be 1.


Sample Input 2

Copy
3 2
1 2 1
2 3 1

Sample Output 2

Copy
0

Every edge is contained in some shortest path between some pair of different vertices.

题意:让我们找出不含最短路径的道路有多少条

解法:先Floyd跑一次,然后比较原始道路和现在的道路,距离不同就说明最短路径也不经过这条道路,然后加一

#include<bits/stdc++.h>
using namespace std;
long long a[][];
long long b[][];
int inf=(<<)-;
int main()
{
int n,m;
cin>>n>>m;
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
a[i][j]=inf;
b[i][j]=inf;
}
b[i][i]=;
a[i][i]=;
}
for(int i=;i<=m;i++)
{
long long x,y,z;
cin>>x>>y>>z;
a[x][y]=min(z,a[x][y]);
a[y][x]=min(z,a[y][x]);
b[x][y]=min(z,b[x][y]);
b[y][x]=min(z,b[y][x]);
}
for(int k=;k<=n;k++)
{
for(int i=;i<=n;i++)
{
for(int j=;j<=n;j++)
{
a[i][j]=min(a[i][k]+a[k][j],a[i][j]);
// cout<<a[i][j]<<" "<<i<<" "<<j<<" "<<k<<endl;
}
}
}
int sum=;
for(int i=;i<=n;i++)
{
for(int j=+i;j<=n;j++)
{
if(b[i][j]!=inf&&a[i][j]!=b[i][j])
{
sum++;
//cout<<i<<" "<<j<<endl;
// cout<<a[i][j]<<" "<<b[i][j]<<endl;
}
}
}
cout<<sum<<endl;
// cout<<b[1][2]<<endl;
return ;
}

AtCoder Beginner Contest 051 ABCD题的更多相关文章

  1. AtCoder Beginner Contest 068 ABCD题

    A - ABCxxx Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement This contes ...

  2. AtCoder Beginner Contest 053 ABCD题

    A - ABC/ARC Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Smeke has ...

  3. AtCoder Beginner Contest 069 ABCD题

    题目链接:http://abc069.contest.atcoder.jp/assignments A - K-City Time limit : 2sec / Memory limit : 256M ...

  4. AtCoder Beginner Contest 070 ABCD题

    题目链接:http://abc070.contest.atcoder.jp/assignments A - Palindromic Number Time limit : 2sec / Memory ...

  5. AtCoder Beginner Contest 057 ABCD题

    A - Remaining Time Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Dol ...

  6. AtCoder Beginner Contest 052 ABCD题

    A - Two Rectangles Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement The ...

  7. AtCoder Beginner Contest 054 ABCD题

    A - One Card Poker Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Ali ...

  8. AtCoder Beginner Contest 058 ABCD题

    A - ι⊥l Time limit : 2sec / Memory limit : 256MB Score : 100 points Problem Statement Three poles st ...

  9. AtCoder Beginner Contest 050 ABC题

    A - Addition and Subtraction Easy Time limit : 2sec / Memory limit : 256MB Score : 100 points Proble ...

随机推荐

  1. WebDriver API——javascript的相关操作

    有些时候webdriver是没法操作元素或浏览器的,这时候我们可以通过javascript来进行相关的操作,昨天在群里一个朋友定位一个显示框,总是无法定位点击,或者是点击无效,这个时候就可以用java ...

  2. 1、VGG16 2、VGG19 3、ResNet50 4、Inception V3 5、Xception介绍——迁移学习

    ResNet, AlexNet, VGG, Inception: 理解各种各样的CNN架构 本文翻译自ResNet, AlexNet, VGG, Inception: Understanding va ...

  3. mongodb给我们提供了fsync+lock机制把数据暴力的刷到硬盘上

    能不能把数据暴力的刷到硬盘上,当然是可以的,mongodb给我们提供了fsync+lock机制就能满足我们提的需求. fsync+lock首先会把缓冲区数据暴力刷入硬盘,然后给数据库一个写入锁,其他实 ...

  4. hdu-2647 Reward && hdu-2049产生冠军 &&hdu-3342Legal or Not(拓扑排序)

    题目链接: hdu-2647 /*Problem : 2647 ( Reward ) Judge Status : Accepted RunId : 16919085 Language : G++ A ...

  5. kamailio/opensips snmp/cacti/zabbix监控

        kamailio/opensips是现在比较流行的sip proxy,有配置灵活.性能强大.支持各种RFC等优点,是杀人越货.谈情说爱是必备佳品.要保证这么好的东西稳定运行,监控是必不可少的, ...

  6. C++之STL迭代器

    迭代器是一种检查容器内元素并遍历元素的数据类型.可以替代下标访问vector对象的元素. 每种容器类型都定义了自己的迭代器类型,如 vector: vector<int>::iterato ...

  7. c++再探string之eager-copy、COW和SSO方案

    在牛客网上看到一题字符串拷贝相关的题目,深入挖掘了下才发现原来C++中string的实现还是有好几种优化方法的. 原始题目是这样的: 关于代码输出正确的结果是()(Linux g++ 环境下编译运行) ...

  8. Ubuntu install font

    最近在 Ubuntu 上使用 VLC 看视频,发现字幕有问题,中文有些是白色的框框,主要是字幕的字体不完全支持中文,但是选择字体时又没有可以使用的字体,为此整理一下 Ubuntu 如何安装字体,现在整 ...

  9. python 之 staticmethod,classmethod,property的区别

    绑定方法和非绑定方法: 普通def定义的都是绑定给对象的方法,对象调用时会自动传入对象本事,而类调用时需手动传入对象. 加上@classmethod装饰器就是绑定给类的方法,会自动传类本身 加上@st ...

  10. 二Java的常量与变量-1-1标识符

    类的名字就是标识符 起类名也是不能带空格的