Live Archive 训练题 2019/3/9
7454 Parentheses
A bracket is a punctuation mark, which is used in matched pairs, usually used within articles or programs. Brackets include round brackets, square brackets, curly brackets, angle brackets, and various other pairs of symbols. Let’s focus on the round brackets, also called parentheses. A sequence of parentheses is said to be well-formed if the parentheses are properly nested. For example, A = a1a2 . . . a18 = “(()())()()()(())()” is well-formed, but B = b1b2 . . . b18 = “(()())))(((((())((” is not. (See Figure 1.) More formally, a sequence of parentheses P = p1p2 . . . pn is well-formed
if (1) when scanning it from p1 to pn, the number of right parentheses does not exceed the number of left parentheses at any state, and
(2) the numbers of left and right parentheses are equal.

Figure 1. Two sequences of parentheses.AutoText is a company, which is developing a text editor for programmers. The new editor willprovide many powerful functions to automatically correct typing errors. On a keyboard, the left andright parentheses are adjacent. Thus, it is often that “)” is mistyped as “(” or vice versa. And therefore,one of the functions AutoText wants to provide is to automatically convert a sequence of parenthesesP(that may not be well-formed) into a wellformed sequenceP′. In the conversion, the only allowedoperation is to reverse a parenthesis (i.e., either to replace a “(” with a “)” or to replace a “)” witha “(”). For example, in Figure 1, we can convertBinto the well-formed sequenceAby performing 4reverse operations onb7,b10,b12,b18. Of course, there may be several ways to convert a sequence intoa well-formed sequence. A conversion is optimal if it uses the minimum number of reverse operations.Please write a program to compute the minimum number of reverse operations that make a givensequence of parenthesesP=p1p2:::pnwell-formed.InputThe first line contains an integerT10indicating the number of test cases. The first line of each testcase contains an even integern,2n100, indicating the length ofP. Next, the second line givesthe sequenceP.
Output
For each test case, output the minimum number of reverse operations that makePwell-formed.
Sample Input
3
18
(()())))(((((())((
2
()
8
(()))()(
Sample Output
4
0
2
题目意思:对于给出的一系列括号,设计一个AutoText,使得能够自动完成括号匹配,问最少需要转变多少个括号,左括号和右括号可以相互转变。
解题思路:之前经常做这种括号匹配的题目,使用栈先将能够匹配的处理掉,之后栈内不能匹配的两个处理,使其能够匹配即可。
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<stack>
using namespace std;
stack<char>s;
int main()
{
int t,n,ans;
int x,y;
char c;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
getchar();
ans=;
while(!s.empty())///清空栈
{
s.pop();
}
while(n--)
{
scanf("%c",&c);
if(c=='(')
{
s.push(c);
}
else if(c==')')
{
if(!s.empty()&&s.top()=='(')///已经匹配出栈
{
s.pop();
}
else
{
s.push(c);
}
}
}
x=;
y=;
ans=;
while(!s.empty())
{
if(s.top()=='(')
{
x++;
}
else if(s.top()==')')
{
y++;
}
if(x==&&y==)///出现')('的情况
{
x--;
y--;
ans=ans+;///两个同时翻转
}
else if(x==)///出现'(('的情况
{
x=x-;
ans++;///翻转一个
}
else if(y==)///出现'))'的情况
{
y=y-;
ans++;///翻转一个
}
s.pop();
}
printf("%d\n",ans);
}
return ;
}
7457Discrete Logarithm Problem

题目意思:求一个x使得 a^x%p = b 。
解题思路:开始一看这种表达式,第一反应是快速幂算法,但后来发现数据的规模并不是很大,所以可以直接暴力枚举,同时发现而取模的结果一定在p次以内出现循环,所以直接从0~p枚举x即可。
#include<cstdio>
#include<cstring>
#define ll long long int
#define maxs 102400
using namespace std;
/*ll fast_pow(ll a,ll x,ll p)
{
ll ans=1;
a=a%p;
while(x!=0)
{
if(x&1)
{
ans=(ans*a)%p;
}
x>>=1;
a=(a*a)%p;
}
return ans%p;
}*/
//快速幂
int main()
{
ll a,b,p,ans,i;
int flag;
scanf("%lld",&p);
while(scanf("%lld",&a)!=EOF)
{
if(a==)
{
break;
}
scanf("%lld",&b);
ans=a;
flag=;
for(i=;i<p;i++)
{
ans=(ans*a)%p;
if(ans==b)
{
flag=;
break;
}
}
if(flag)
{
printf("%d\n",i);
}
else
{
printf("0\n");
}
}
return ;
}
7464Robots
Write a program to collect data from robots. We are given two sets of robotsX=fX1;:::;Xmg,Y=fY1;:::;Yng, and a baseB. Each robot has a data and we would like to compute the sum of datafrom all robots and deliver it to the base. In order to do so a robot can send its data to another robotor the base with the following constraints.
•A robot can only send its data to one destination (a robot or the base) at a time.
•A robot (or the base) can receive data from one robot at a time.
•The base can not send data to anyone.
•A robot inXcan complete sending its data in x seconds.A robot in Y can complete sending its data in y seconds.
The robots and the base can perform addition, so we can collect the final sum at the base. Thatis, we assume that after receiving a data, a robot or the base can perform an addition with zero time.Now let us illustrate this concept by an example. Let us consider a system with one robotX1inXand two robotsY1andY2inY. We also assume thatxis 1 andyis 10. At the beginningY1can sendits data toY2andX1can send its data to the base. After 1 second the base will know the data ofX1.However, only after 10 secondsY2will have the data ofY1, add its own data, and send the sum to thebase. After 20 seconds the base receives the sum of data fromY1andY2, adds the data fromX1, andhas the final sum. The entire summation will take 20 seconds.Now let us try a different schedule. At beginningY1sends data to the base, andY2sends data toX1, and both can complete after 10 seconds. Finally X1 starts sending the sum of data from Y2 anditself to the base after 10 seconds, and the entire summation can finish in 11 seconds.Now givenm,n(the numbers of robots in X and Y),x, andy, please determine the minimumnumber of seconds to finish the summation.Constraints•1x<y1000.•0m<1200.•0n<500.
Input
The input consists of multiple test cases. First line contains a single integertindicating the number oftest cases to follow. Each of the nexttlines contains four integers —x,y,m,n.
Output
For each test case, output on a single line the minimum number of seconds to sum up all numbers fromall robots.
Sample Input
11 10 1 2
Sample Output
11
题目意思:有x,y两种类型的机器人各n个和m个,还有一个基地B,x型的机器人将其货物运到基地或其他机器人上需要x秒,y型的机器人将其货物运到基地或其他机器人上需要y秒,同一时刻每个机器人只能发送给一个对象,也只能接受一个对象的货物,基地在同一时刻也只能接受一个机器人的货物,问你如何搭配才能花费最短的时间将所有的货物运送到基地。
解题思路:我刚开始按照那个样例一直想模拟整个运送过程,但发现还是太麻烦,因为里面有很多种情况的判断,那么我们可以从整体的角度出发,需要最少的时间肯定不能是一个个机器人排队去送货物到基地,必然是将一些耗时大的机器人身上的货物送到耗时少的身上,通过哪些耗时少的来运送。这其实就是第一步,将耗时多的机器人身上的货物尽可能的向耗时少的机器人身上送,这个时间段中可以选择一个耗时多的机器人送货到基地,之后耗时多的机器人不管有没有剩余,和耗时少的机器人只要在条件限定内组合时间就像是左手倒右手,时间是一定的,也就是说我们只能省出一个耗时长的机器人的时间。
Live Archive 训练题 2019/3/9的更多相关文章
- Live Archive 训练题
7091 Height Ordering Mrs. Chambers always has her class line up in height order (shortest at the fro ...
- X-NUCA 2017 web专题赛训练题 阳光总在风雨后和default wp
0X0.前言 X-NUCA 2017来了,想起2016 web专题赛,题目都打不开,希望这次主办方能够搞好点吧!还没开赛,依照惯例会有赛前指导,放一些训练题让CTFer们好感受一下题目. 题目有一大 ...
- PAT乙级真题及训练题 1025. 反转链表 (25)
PAT乙级真题及训练题 1025. 反转链表 (25) 感觉几个世纪没打代码了,真是坏习惯,调了两小时把反转链表调出来了,心情舒畅. 这道题的步骤 数据输入,数组纪录下一结点及储存值 创建链表并储存上 ...
- 日常 java+雅思+训练题1
今天主要学了一些类似c中的一些语句,java也是一样类似的,只有一些点需要稍微注意一下,一些语句是新增的需要知道. 完完全全新学的知识就是class和instance的区别.如何创建实例.数据的封装. ...
- 中南大学2019年ACM寒假集训前期训练题集(基础题)
先写一部分,持续到更新完. A: 寒衣调 Description 男从戎,女守家.一夜,狼烟四起,男战死沙场.从此一道黄泉,两地离别.最后,女终于在等待中老去逝去.逝去的最后是换尽一生等到的相逢和团圆 ...
- 中南大学2019年ACM寒假集训前期训练题集(入门题)
A: 漫无止境的八月 Description 又双叒叕开始漫无止境的八月了,阿虚突然问起长门在这些循环中团长哪几次扎起了马尾,他有多少次抓住了蝉等等问题,长门一共回复n个自然数,每个数均不超过1500 ...
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- 2016huas暑假集训训练题 G-Who's in the Middle
题目链接:http://acm.hust.edu.cn/vjudge/contest/121192#problem/G 此题大意是给定一个数n 然后有n个数 要求求出其中位数 刚开始以为是按数学中的 ...
- 2016HUAS暑假集训训练题 G - Oil Deposits
Description The GeoSurvComp geologic survey company is responsible for detecting underground oil dep ...
随机推荐
- JSON在Java中的使用(一)
1.去JSON官网下载org.json包 https://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.json%22%20AND%20a%3A%22 ...
- C++程序设计入门(上) string类的基本用法
string类中的函数 1. 构造 2. 追加 3. 赋值 4. 位置与清除 5. 长度与容量 6. 比较 7. 子串 8. 搜索 9. 运算符 追加字符串 string s1("Welc ...
- Django实现支付宝支付(沙箱)
1.安装SDK 点击右侧沙箱当面付接入指导,之后可以看到一个下载SDK的按钮,点击后,会有python的SDK下载链接,但还是属于公测中,也可以通过在cmd里输入以下代码来安装. pip instal ...
- Node.js发送电子邮件
电子邮件作为最广泛使用的一种网络服务和我们的工作学习生活已经密不可分.接受信用卡的账单,注册网站,找回密码等等都需要用到它.今天在就来学习下如何在node下来发送邮件,为当前做的项目提供邮箱校验的功能 ...
- Spring Web Async异步处理#Callable #DeferredResult
Spring MVC 对于异步请求处理的两种方式 场景: Tomcat对于主线程性能瓶颈,当Tomcat请求并发数过多时,当线程数满时,就会出现请求等待Tomcat处理,这个时候可以使用子线程处理业务 ...
- 总结2018&&展望2019
2019很激动,因为我加入了博客园这个大家庭,以后的技术文章都会在博客园记录,也希望可以结识更多的有趣朋友和共同理想的友人.第一篇文章从自我规划开始.2019 您好!!! 总结2018: 距离2018 ...
- dtree加载慢的问题
前几天测试的时候,感觉dtree还行,也不是很慢.今天把树分支扩大以后就懵逼了,慢的一匹. 仔细看了下,才发现原来画分支的时候每次都会请求那些图,反复请求下加载时候无形拉长了很多.没有办法,就只能在h ...
- 20155230 2016-2017-2 《Java程序设计》第三周学习总结
---恢复内容开始--- 20155230 张瑞琦 2016-2017-2 <Java程序设计>第三周学习总结 教材学习内容总结 1.使用浮点数时用equals()进行比较,否则会出错. ...
- 20155325 2016-2017-2 《Java程序设计》第1周学习总结
教材学习内容总结 三大平台 java SE:JVM(java虚拟机),JRE(运行java程序),JDK(包括JRE及开发过程中需要的一些工具程序),java语言. java EE:基于java SE ...
- 分块算法&BZOJ2002
题目传送门 第一次接触分块...... 分块查找是折半查找和顺序查找的一种改进方法,分块查找由于只要求索引表是有序的,对块内节点没有排序要求,因此特别适合于节点动态变化的情况. 分块修改理论复杂度为O ...