分类存档: sgu - 第2页

SGU 101 解题报告

http://acm.sgu.ru/problem.php?contest=0&problem=101

101. Domino

time limit per test: 0.50 sec.
memory limit per test: 4096 KB

Dominoes – game played with small, rectangular blocks of wood or other material, each identified by a number of dots, or pips, on its face. The blocks usually are called bones, dominoes, or pieces and sometimes men,stones, or even cards.
The face of each piece is divided, by a line or ridge, into two squares, each of which is marked as would be a pair of dice…

The principle in nearly all modern dominoes games is to match one end of a piece to another that is identically or reciprocally numbered.

ENCYCLOPÆDIA BRITANNICA

多米诺 – 一种使用木头或其他材料制作的方块进行的游戏。方块的每个面上标记上确定的数字或点。方块常常被称做骨,骨牌或片,有时使用人,骨头或卡片进行.

每个骨牌的面使用一条线分成两部分,每个部分标记一个数字.

几乎所有现代骨牌游戏的原则是:骨牌数字相同的部分首位相接,最后连成串.

–––––– 《大英百科全书》

Given a set of domino pieces where each side is marked with two digits from 0 to 6. Your task is to arrange pieces in a line such way, that they touch through equal marked sides. It is possible to rotate pieces changing left and right side.

给定一系列两端标记为0~6数字的骨牌.你的任务是排列这些骨牌,使他们相接触的部分数字相同,你可以左右翻转骨牌.

Input

The first line of the input contains a single integer N (1 ≤ N ≤ 100) representing the total number of pieces in the domino set. The following N lines describe pieces. Each piece is represented on a separate line in a form of two digits from 0 to 6 separated by a space.

第一行输入一个整数 N (1 ≤ N ≤ 100) 代表骨牌的数量. 接下来 N 行代表 N 块骨牌. 每块骨牌使用两个0~6的使用空格隔开的数字表示.

Output

Write “No solution” if it is impossible to arrange them described way. If it is possible, write any of way. Pieces must be written in left-to-right order. Every of N lines must contains number of current domino piece and sign “+” or “-“ (first means that you not rotate that piece, and second if you rotate it).

如果无法将骨牌连成串,则输出”No solution”. 否则输出任何一种符合条件的排列方案.输出是从左到右描述骨牌的排列.每行包含一个数字和一个符号,分别表示骨牌的编号和是否翻转骨牌,(+表示不翻转,-表示翻转)。

[……]

Continue

SGU 126 解题报告

http://acm.sgu.ru/problem.php?contest=0&problem=126

126. Boxes

time limit per test: 0.50 sec.
memory limit per test: 4096 KB

There are two boxes. There are A balls in the first box, and B balls in the second box (0 < A + B < 2147483648). It is possible to move balls from one box to another. From one box into another one should move as many balls as the other box already contains. You have to determine, whether it is possible to move all balls into one box.

现在有两个盒子。第一个盒子有A个球,另一个盒子有B个球 (0 < A + B < 2147483648).有一种移动球的方式.从一个盒子移动球到另一个盒子,但要求被移动的球的数量要与另一个盒子已有的球的数量相同.你必须算出是否有可能将其中一个盒子清空。

Input

The first line contains two integers A and B, delimited by space.

第一行包含两个整数 A 和 B,以空格隔开.

Output

First line should contain the number N – the number of moves which are required to move all balls into one box, or -1 if it is impossible.

第一行输出整数 N -如果可以清空其中一个盒子所需要的移动次数,如果不可能,则输出-1.

[……]

Continue

SGU 175 解题报告

http://acm.sgu.ru/problem.php?contest=0&problem=175

175.Encoding

time limit per test: 0.50 sec.
memory limit per test: 4096 KB

Let phi(W) is the result of encoding for algorithm:
1.If the length of W is 1 then phi(W) is W;
2.Let coded word is W = w1w2…wN and K = N / 2 (rounded down);
3.phi(W) = phi(wNwN-1…wK+1) + phi(wKwK-1…w1).
For example, phi(‘Ok’) = ‘kO’, phi(‘abcd’) = ‘cdab’.
Your task is to find position of letter wq in encoded word phi(W).

令phi(W)为字符串W按以下方法编码的结果:
1、如果W长度为1,那么phi(W)就是W
2、设W=w1 w2 …… wN 且 K=N/2 (向下取整)
3、phi(W)=phi(wN wN-1 …… wK+1)+phi(wK wK-1 …… w1)
例如,phi(‘Ok’)=’kO’,phi(‘abcd’)=’cdab’。
你的任务就是找到原字符串W内第q个字符wq在编码后的字符串phi(W)中的位置。

Input

Given integers N, q (1 <= N <= 10^9; 1<= q <= N), where N is the length of word W.

整数N,q(1<=N<=10^9;1<=q<=N),其中N是字符串W的长度

Output

Write position of letter wq in encoded word phi(W).

输出wq在编码后的字符串phi(W)中的位置

[……]

Continue

SGU 104 解题报告

http://acm.sgu.ru/problem.php?contest=0&problem=104

104. Little shop of flowers

time limit per test: 0.50 sec.
memory limit per test: 4096 KB

You want to arrange the window of your flower shop in a most pleasant way. You have F bunches of flowers, each being of a different kind, and at least as many vases ordered in a row. The vases are glued onto the shelf and are numbered consecutively 1 through V, where V is the number of vases, from left to right so that the vase 1 is the leftmost, and the vase V is the rightmost vase. The bunches are moveable and are uniquely identified by integers between 1 and F. These id-numbers have a significance: They determine the required order of appearance of the flower bunches in the row of vases so that the bunch i must be in a vase to the left of the vase containing bunch j whenever i < j. Suppose, for example, you have bunch of azaleas (id-number=1), a bunch of begonias (id-number=2) and a bunch of carnations (id-number=3). Now, all the bunches must be put into the vases keeping their id-numbers in order. The bunch of azaleas must be in a vase to the left of begonias, and the bunch of begonias must be in a vase to the left of carnations. If there are more vases than bunches of flowers then the excess will be left empty. A vase can hold only one bunch of flowers.

你现在想用最令人满意的方案来装饰你花店的橱窗。你有 F 束花, 每束花种类不同, 种数不超过窗台上的花瓶总数。花瓶被嵌入窗台,并且被顺序从1到 V 编号。V 表示花瓶总数。顺序编号使得1号花瓶在最左边, V 号花瓶在最右边。花束是可以移动的,而且按照不同种类从1 到 F 编号。这些编号是有特殊含义的: 编号小的花必须出现在编号大的花的左边。现在,所有的花必须按编号顺序放在花瓶中,每个花瓶对应一种花。杜鹃花必须在秋海棠左面,秋海棠必须在康乃馨前面。如果花不够,将会有花瓶是空的.

Each vase has a distinct characteristic (just like flowers do). Hence, putting a bunch of flowers in a vase results in a certain aesthetic value, expressed by an integer. The aesthetic values are presented in a table as shown below. Leaving a vase empty has an aesthetic value of 0.

每个花瓶都有自己的特征(就像花一样)。于是,把一种花放入一个花瓶会产生一定的美学价值。用一个整数来表示美学价值,那么空花瓶的美学价值为0,花与花瓶搭配的美学价值如下表:

V A S E S 花瓶

1

2

3

4

5

Bunches 花束

1 (azaleas 杜鹃花)

7

23

-5

-24

16

2 (begonias 秋海棠)

5

21

-4

10

23

3 (carnations 康乃馨)

-21

5

-4

-20

20

According to the table, azaleas, for example, would look great in vase 2, but they would look awful in vase 4.

根据这个表,杜鹃花放在2号花瓶中会好看些,在4号花瓶中现得很别扭。

To achieve the most pleasant effect you have to maximize the sum of aesthetic values for the arrangement while keeping the required ordering of the flowers. If more than one arrangement has the maximal sum value, any one of them will be acceptable. You have to produce exactly one arrangement.

为了让方案最令人满意,你需要使美学价值最大化。如果有多种方案美学价值相同,选取任意一种都算对。你只需要算出一种方案。

ASSUMPTIONS

  • 1 ≤ F ≤ 100 where F is the number of the bunches of flowers. The bunches are numbered 1 through F.
  • FV ≤ 100 where V is the number of vases.
  • -50 Aij 50 where Aij is the aesthetic value obtained by putting the flower bunch i into the vase j.
  • 1 ≤ F ≤ 100 表示花的种数。
  • FV ≤ 100 表示花瓶数。
  • -50 Aij 50 表示i号花束放入j号花瓶产生的美学价值。

Input

  • The first line contains two numbers:F, V.
  • The following F lines: Each of these lines contains V integers,so that Aij is given as thej th number on the (j+1) st line of the input file.
  • 第一行: F, V.
  • 接下来F行每行V个数,其中Aij第(i+1) 行j 列 。

Output

  • The first line will contain the sum of aesthetic values for your arrangement.
  • The second line must present the arrangement as a list of F numbers, so that the k’th number on this line identifies the vase in which the bunch k is put.
  • 第一行包括一个整数表示最大美学价值。
  • 第二行从左到右F个数表示最优方案的每个花束放在哪一个花瓶里,数据用空格隔开。

[……]

Continue

SGU 184 解题报告

http://acm.sgu.ru/problem.php?contest=0&problem=184

184.Patties

time limit per test: 0.50 sec.
memory limit per test: 4096 KB

Petya is well-known with his famous cabbage patties. Petya’s birthday will come very soon, and he wants to invite as many guests as possible. But the boy wants everybody to try his specialty of the house. That’s why he needs to know the number of the patties he can cook using the stocked ingredients. Petya has P grams of flour, M milliliters of milk and C grams of cabbage. He has plenty of other ingredients. Petya knows that he needs K grams of flour, R milliliters of milk and V grams of cabbage to cook one patty. Please, help Petya calculate the maximum number of patties he can cook.

Input

The input file contains integer numbers P, M, C, K, R and V, separated by spaces and/or line breaks (1 <= P, M, C, K, R, V <= 10000).

Output

Output the maximum number of patties Petya can cook.

[……]

Continue

SGU 172 解题报告

http://acm.sgu.ru/problem.php?contest=0&problem=172

172.eXam

time limit per test: 0.50 sec.
memory limit per test: 4096 KB

In Russia school pupils must do some exams before leaving school. Among others, they must do two “selective” exams. This means that school provides a list of available subjects; each pupil selects two different subjects from this list and is going to do this exams. According to rules, pupil isn’t allowed to do both exams at the same day, so the school must schedule the exams, i.e. provide some days when pupils will be able to do exams.

在俄罗斯学校里,小学生在离校之前必须做两个考试。这意味着学校必须提供一些可选的考试。每个学生选择两个不同的项目。根据规则每个学生不允许在同一天完成两个考试。所以学校必须安排好这些考试。

One school does not want to warn teachers too much. They want to schedule all the exams into two days in such way that exams on some subjects are on the first day, and exams on all other (and only on them) are on second. You are to write a program, which will determine, if it is possible to schedule exams in this way so that all pupils will be able to do all their selected exams.

一个学校不想让老师太辛苦,他们想在两天之内安排所有这些考试。在第一天安排一些考试,在第二天也只能在第二天安排其它的考试。你被安排写一个这样的程序来看看是否可以做到让每个学生都能参加他们的考试。

Input

On the first line of input there are two integers N and M (1<=N<=200, 1<=M<=30000) - the number of available subjects and the number of pupils. Then M lines follows; on i-th of them there are two integers - the numbers of exams, which were selected by i-th pupil. Exams are numerated from 1 to N.

在第一行有两个整数N和M,(1<=N<=200,1<=m<=30000)N代表可选择的考试的科目数,M代表学生的人数。下面的M行中分别代表一个学生选择的考试项目数。

Output

If the solution exists, write on the first line of output only one word “yes”. On the second line write the total number of exams, which must be held on first day, and on the third line – the numbers of subjects of this exams. If there exist several solutions, output any. If no solution exists, write to output only one word “no”.

如果安排方法存在,在第一行写”yes”,在第二行输出在第一天必须安排的考试项目的数量,在第三行输出考试项目的项目数。如果存在多个安排方法,输出其中一个就可以了。如果安排方法不存在,输出”no”

[……]

Continue

SGU 127 解题报告

http://acm.sgu.ru/problem.php?contest=0&problem=127

127. Telephone directory

time limit per test: 0.50 sec.
memory limit per test: 4096 KB

CIA has decided to create a special telephone directory for its agents. The first 2 pages of the directory contain the name of the directory and instructions for agents, telephone number records begin on the third page. Each record takes exactly one line and consists of 2 parts: the phone number and the location of the phone. The phone number is 4 digits long. Phone numbers cannot start with digits 0 and 8. Each page of the telephone directory can contain not more then K lines. Phone numbers should be sorted in increasing order. For the first phone number with a new first digit, the corresponding record should be on a new page of the phone directory. You are to write a program, that calculates the minimal number P pages in the directory. For this purpose, CIA gives you the list of numbers containing N records, but since the information is confidential, without the phones locations.

CIA(中央情报局)决定为它的代理商做一份特殊的电话号码簿。号码簿的前两页是一些使用说明和人名等一些乱七八糟的内容,从第三页开始记录电话号码。每一个电话记录都只有一行,它包括两个部分:电话号码和电话位置。电话号码长度是4,电话号码不能以0或8开头。电话号码簿的每一页不能超过K行。电话号码应该按照字典序排序。第一位的数字不同的电话号码不能出现在同一页。所以当电话号码第一位改变时,应该另起一页。你需要编写一个程序,计算最少需要的页数 P。为此,CIA已经给你了一份有N条电话记录的表格,但由于工作机密,CIA没有告诉你电话的位置,所以你不用考虑电话位置。

Input

The first line contains a natural number K (0 < K < 255) – the maximum number of lines that one page can contain. The second line contains a natural N (0 < N < 8000) – number of phone numbers supplied. Each of following N lines contains a number consisting of 4 digits – phone numbers in any order, and it is known, that numbers in this list cannot repeat.

第一行是自然数 K (0 < K < 255) 每页最多有多少行。第二行是自然数 N (0 < N < 8000) 提供的电话记录总数。 接下来的N行每行包括 4 个数字的电话号码。它们是随机顺序给出的,保证不会有重复的情况。

Output

First line should contain a natural number P – the number of pages in the telephone directory.

输出P – 最少需要多少页。

[……]

Continue

SGU 180 解题报告

http://acm.sgu.ru/problem.php?contest=0&problem=180

180. Inversions

time limit per test: 0.50 sec.
memory limit per test: 4096 KB

There are N integers (1<=N<=65537) A1, A2,.. AN (0<=Ai<=10^9). You need to find amount of such pairs (i, j) that 1<= i < j <= N and A[i]>A[j].

Input

The first line of the input contains the number N. The second line contains N numbers A1…AN.

Output

Write amount of such pairs.

[……]

Continue

SGU 111 解题报告

http://acm.sgu.ru/problem.php?contest=0&problem=111

111. Very simple problem

time limit per test: 0.50 sec.
memory limit per test: 4096 KB

You are given natural number X. Find such maximum integer number that it square is not greater than X.

Input

Input file contains number X (1≤X≤101000).

Output

Write answer in output file.

[……]

Continue