山东省第一届ACM大学生程序设计竞赛(原题) 回顾 4.18

Phone Number 题目链接:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2151&cid=1172

题意很简单:给出N行电话号码,寻找有没有一串是另一串的前缀,有的话输出No,当然两个一样的也是No

题解:没有前缀0,直接用二维数组存,大循环就行了,用strcmp比较相等。不会超时。

Hello World!     题目链接:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2158&cid=1172

示例输入

3
1 2
2 3
2 3

0

示例输出

Case 1:
2 3
-1 -1
-1 -1

题意:给N个数对,对0<r, c≤300和所有输入的数对进行比较,如果存在比这个两数,输出全都大的数对,不存在输出-1,如果这两个数对都大的数有多多个,行最小优先,行相同有多个,列最小优先。

题解:当时没想到同pair,STL的使用还是不熟练,用的数组存储数对,if比较就行了。

Shopping   题目链接:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2154&cid=1172

示例输入

4
24 13 89 37
6
7 30 41 14 39 42
0

示例输出

152
70

题意:一个人逛商场,把车停在最小的商场位置,逛完所有商场,在回到车上求路线长度。

题解:排个序,最大减最小除2.

Balloons 题目链接:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2152&cid=1172

示例输入

5
11001
00100
11111
11010
10010

0

示例输出

Case 1: 3 2

题意:求1的四连块和八连块的个数。

题解:完全dfs模板,四连块可以加if剪掉4个方向。

时间: 2024-10-07 04:04:35

山东省第一届ACM大学生程序设计竞赛(原题) 回顾 4.18的相关文章

sdut 2153 Clockwise (2010年山东省第一届ACM大学生程序设计竞赛)

题目大意: n个点,第i个点和第i+1个点可以构成向量,问最少删除多少个点可以让构成的向量顺时针旋转或者逆时针旋转. 分析: dp很好想,dp[j][i]表示以向量ji(第j个点到第i个点构成的向量)为终点的最大顺时针/逆时针向量数.状态转移方程为 dp[j][i] = max{dp[k][j]+1}. 问题个关键是如何判断2个向量是顺时针还是逆时针. 计算几何用的知识是求叉积和点积,叉积的作用是判断两个向量的左右(顺逆),点积的作用是判断两个向量的前后.举个例子,假设有2个向量v1,v2,‘*

2010年山东省第一届ACM大学生程序设计竞赛 Balloons (BFS)

题意 : 找联通块的个数,Saya定义两个相连是 |xa-xb| + |ya-yb| ≤ 1 ,但是Kudo定义的相连是 |xa-xb|≤1 并且 |ya-yb|≤1.输出按照两种方式数的联通块的各数.思路 : 按照第一种定义方式就只能是上下左右四个位置,而第二种则是周围那8个都是相连的. 1 #include <iostream> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <queue> 5

sdut 2159 Ivan comes again!(2010年山东省第一届ACM大学生程序设计竞赛) 线段树+离散

先看看上一个题: 题目大意是: 矩阵中有N个被标记的元素,然后针对每一个被标记的元素e(x,y),你要在所有被标记的元素中找到一个元素E(X,Y),使得X>x并且Y>y,如果存在多个满足条件的元素,先比较X,选择X最小的那个,如果还是有很多满足条件的元素,再比较Y,选择Y最小的元素,如果不存在就输出两个-1: 分析: 直接暴力就行了 这个题目大意: 这个题是上个题的坚强版,每次会增加或减少一个点,仍然找到一个元素E(X,Y),使得X>x并且Y>y: 最多有200000次操作,每次只

[简单思维题]Sequence(山东省第九届ACM大学生程序设计竞赛E题)

Problem Description We define an element a_iai? in a sequence "good", if and only if there exists a j(1\le j < i)j(1≤j<i) such that a_j < a_iaj?<ai?.Given a permutation pp of integers from 11 to nn. Remove an element from the permuta

[2011山东省第二届ACM大学生程序设计竞赛]——Identifiers

Identifiers Time Limit: 1000MS Memory limit: 65536K 题目:http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2163 题目描写叙述 Identifier is an important concept in the C programming language. Identifiers provide names for several language

angry_birds_again_and_again(2014年山东省第五届ACM大学生程序设计竞赛A题)

http://acm.sdut.edu.cn/sdutoj/problem.php?action=showproblem&problemid=2877 题目描述 The problems called "Angry Birds" and "Angry Birds Again and Again" has been solved by many teams in the series of contest in 2011 Multi-University Tr

ZZUOJ-1195-(郑州大学第七届ACM大学生程序设计竞赛E题)

1195: OS Job Scheduling Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 106  Solved: 35 [Submit][Status][Web Board] Description OS(Operating System) is to help user solve the problem, such as run job(task).A multitasking OS is one that can simultaneo

ZZUOJ-1195-OS Job Scheduling(郑州大学第七届ACM大学生程序设计竞赛E题)

1195: OS Job Scheduling Time Limit: 2 Sec  Memory Limit: 128 MB Submit: 106  Solved: 35 [Submit][Status][Web Board] Description OS(Operating System) is to help user solve the problem, such as run job(task).A multitasking OS is one that can simultaneo

山东省第二届ACM大学生程序设计竞赛 D

组合数: AC代码: #include <iostream> #include <cstdio> #include <cstring> using namespace std; int c[1010][1010]; int main() { int t, n, k; for(int i = 0; i < 1001; i++) c[i][0] = 1; for(int i = 1; i < 1001; i++) { for(int j = 1; j <