Time limit : 2sec / Memory limit : 256MB
Score : 100 points
In K-city, there are n streets running east-west, and m streets running north-south. Each street running east-west and each street running north-south cross each other. We will call the smallest area that is surrounded by four streets a block. How many blocks there are in K-city?
Input is given from Standard Input in the following format:
n m
Print the number of blocks in K-city.
Copy
3 4
Copy
6
There are six blocks, as shown below:
Copy
2 2
Copy
1
There are one block, as shown below:
题目链接:http://abc069.contest.atcoder.jp/tasks/abc069_a
分析:结论就是ans=(a-1)*(b-1)
下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 inline int read()
5 {
6 int x=0,f=1;
7 char ch=getchar();
8 while(ch<'0'||ch>'9')
9 {
10 if(ch=='-')
11 f=-1;
12 ch=getchar();
13 }
14 while(ch>='0'&&ch<='9')
15 {
16 x=x*10+ch-'0';
17 ch=getchar();
18 }
19 return x*f;
20 }
21 inline void write(int x)
22 {
23 if(x<0)
24 {
25 putchar('-');
26 x=-x;
27 }
28 if(x>9)
29 {
30 write(x/10);
31 }
32 putchar(x%10+'0');
33 }
34 int main()
35 {
36 int a,b;
37 cin>>a>>b;
38 cout<<(a-1)*(b-1)<<endl;
39 return 0;
40 }
Time limit : 2sec / Memory limit : 256MB
Score : 200 points
The word internationalization
is sometimes abbreviated to i18n
. This comes from the fact that there are 18 letters between the first i
and the last n
.
You are given a string s of length at least 3 consisting of lowercase English letters. Abbreviate s in the same way.
Input is given from Standard Input in the following format:
s
Print the abbreviation of s.
Copy
internationalization
Copy
i18n
Copy
smiles
Copy
s4s
Copy
xyz
Copy
x1z
题目链接:http://abc069.contest.atcoder.jp/tasks/abc069_b
分析:输出第一个,最后一个就好咯
下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 inline int read()
5 {
6 int x=0,f=1;
7 char ch=getchar();
8 while(ch<'0'||ch>'9')
9 {
10 if(ch=='-')
11 f=-1;
12 ch=getchar();
13 }
14 while(ch>='0'&&ch<='9')
15 {
16 x=x*10+ch-'0';
17 ch=getchar();
18 }
19 return x*f;
20 }
21 inline void write(int x)
22 {
23 if(x<0)
24 {
25 putchar('-');
26 x=-x;
27 }
28 if(x>9)
29 {
30 write(x/10);
31 }
32 putchar(x%10+'0');
33 }
34 char s[105];
35 int main()
36 {
37 cin>>s;
38 int len=strlen(s);
39 cout<<s[0]<<len-2<<s[len-1]<<endl;
40 return 0;
41 }
Time limit : 2sec / Memory limit : 256MB
Score : 400 points
We have a sequence of length N, a=(a1,a2,…,aN). Each ai is a positive integer.
Snuke's objective is to permute the element in a so that the following condition is satisfied:
Determine whether Snuke can achieve his objective.
Input is given from Standard Input in the following format:
N
a1 a2 … aN
If Snuke can achieve his objective, print Yes
; otherwise, print No
.
Copy
3
1 10 100
Copy
Yes
One solution is (1,100,10).
Copy
4
1 2 3 4
Copy
No
It is impossible to permute a so that the condition is satisfied.
Copy
3
1 4 1
Copy
Yes
The condition is already satisfied initially.
Copy
2
1 1
Copy
No
Copy
6
2 7 1 8 2 8
Copy
Yes
题目链接:http://abc069.contest.atcoder.jp/tasks/arc080_a
分析:统计4的倍数,2的倍数还有不是这两个的倍数的数,然后2个2的倍数等于4的倍数,然后就这样了!
下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 inline int read()
5 {
6 int x=0,f=1;
7 char ch=getchar();
8 while(ch<'0'||ch>'9')
9 {
10 if(ch=='-')
11 f=-1;
12 ch=getchar();
13 }
14 while(ch>='0'&&ch<='9')
15 {
16 x=x*10+ch-'0';
17 ch=getchar();
18 }
19 return x*f;
20 }
21 inline void write(int x)
22 {
23 if(x<0)
24 {
25 putchar('-');
26 x=-x;
27 }
28 if(x>9)
29 {
30 write(x/10);
31 }
32 putchar(x%10+'0');
33 }
34 int main()
35 {
36 int n;
37 cin>>n;
38 int a=0,b=0,c=0;
39 for(int i=0;i<n;i++)
40 {
41 ll x;
42 x=read();
43 if(x%4==0)
44 a++;
45 else if(x%2==0)
46 b++;
47 else c++;
48 }
49 if(b>0)
50 c++;
51 if(a+1>=c)
52 cout<<"Yes"<<endl;
53 else
54 cout<<"No"<<endl;
55 return 0;
56 }
Time limit : 2sec / Memory limit : 256MB
Score : 400 points
We have a grid with H rows and W columns of squares. Snuke is painting these squares in colors 1, 2, …, N. Here, the following conditions should be satisfied:
Find a way to paint the squares so that the conditions are satisfied. It can be shown that a solution always exists.
Input is given from Standard Input in the following format:
H W
N
a1 a2 … aN
Print one way to paint the squares that satisfies the conditions. Output in the following format:
c11 … c1W
:
cH1 … cHW
Here, cij is the color of the square at the i-th row from the top and j-th column from the left.
Copy
2 2
3
2 1 1
Copy
1 1
2 3
Below is an example of an invalid solution:
1 2
3 1
This is because the squares painted in Color 1 are not 4-connected.
Copy
3 5
5
1 2 3 4 5
Copy
1 4 4 4 3
2 5 4 5 3
2 5 5 5 3
Copy
1 1
1
1
Copy
1
题目链接:http://abc069.contest.atcoder.jp/tasks/arc080_b
分析:从一个点可以到达其它所有的点,直接来一个水平填充好像就过了
下面给出AC代码:
1 #include <bits/stdc++.h>
2 using namespace std;
3 typedef long long ll;
4 inline int read()
5 {
6 int x=0,f=1;
7 char ch=getchar();
8 while(ch<'0'||ch>'9')
9 {
10 if(ch=='-')
11 f=-1;
12 ch=getchar();
13 }
14 while(ch>='0'&&ch<='9')
15 {
16 x=x*10+ch-'0';
17 ch=getchar();
18 }
19 return x*f;
20 }
21 inline void write(int x)
22 {
23 if(x<0)
24 {
25 putchar('-');
26 x=-x;
27 }
28 if(x>9)
29 {
30 write(x/10);
31 }
32 putchar(x%10+'0');
33 }
34 int w,h,n;
35 int s[105][105];
36 int cnt[10005];
37 int main()
38 {
39 h=read();
40 w=read();
41 n=read();
42 for(int i=1;i<=n;i++)
43 cnt[i]=read();
44 int k=1;
45 for(int i=1;i<=h;i++)
46 {
47 if(i%2==1)
48 {
49 for(int j=1;j<=w;j++)
50 {
51 if(cnt[k]==0)
52 k++;
53 cnt[k]--;
54 s[i][j]=k;
55 }
56 }
57 else
58 {
59 for(int j=w;j>0;j--)
60 {
61 if(cnt[k]==0)
62 k++;
63 cnt[k]--;
64 s[i][j]=k;
65 }
66 }
67 }
68 for(int i=1;i<=h;i++)
69 {
70 for(int j=1;j<=w;j++)
71 printf("%d ",s[i][j]);
72 printf("\n");
73 }
74 return 0;
75 }
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有