ACM-ICPC 2018 沈阳赛区网络预赛 B Call of Accepted

2024-02-18 05:38

本文主要是介绍ACM-ICPC 2018 沈阳赛区网络预赛 B Call of Accepted,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ACM-ICPC 2018 沈阳赛区网络预赛

  1. Call of Accepted

题意:给定字符串,字符串有 +  -  *  d  (  )  还有数字,表示一个运算式子,d 表示一种新运算符,x d y 表示 最小为 x 最大 为 x*y ,求字符串能表示的最大值。

#include <bits/stdc++.h>
using namespace std;int len;
int fst[1005];
char str[1005];pair<int,int> add(pair<int,int>p1, pair<int,int>p2) {return make_pair(p1.first+p2.first, p1.second+p2.second);
}
pair<int,int> sub(pair<int,int>p1, pair<int,int>p2) {return make_pair(p1.first-p2.second, p1.second-p2.first);
}
pair<int,int> mul(pair<int,int>p1, pair<int,int>p2) {int t1 = p1.first*p2.first;int t2 = p1.first*p2.second;int t3 = p1.second*p2.first;int t4 = p1.second*p2.second;return make_pair(min(min(t1,t2), min(t3,t4)), max(max(t1,t2),max(t3,t4)));
}pair<int,int> pp(pair<int,int>p1, pair<int,int>p2) {return make_pair(p1.first, p1.second*p2.second);
}pair<int,int> Jud(int begin, int end)
{ int i;pair<int,int> k;for(i = begin; i <= end; i++) {if(str[i]== '+' && fst[i] == fst[begin]){//	cout <<"#"<<endl;k = add(Jud(begin, i - 1), Jud(i + 1, end));return k;}}for(i = end; i >= begin; i--){if(str[i]=='-' && fst[i] == fst[begin]){//    cout << "#" <<endl;k = sub(Jud(begin, i - 1), Jud(i + 1, end)); //     cout << i <<"*"<<endl;return k;}}for(i = begin; i <= end; i++){if(str[i] == '*' && fst[i] == fst[begin]){k = mul(Jud(begin, i - 1), Jud(i + 1, end)); return k;}}for (int i = end; i >= begin; i--) {if (str[i] == 'd' && fst[i] == fst[begin]) {k = pp(Jud(begin, i - 1), Jud(i + 1, end)); return k;}}if(str[begin]=='(') {// for(i = begin + 1; fst[i] >= fst[begin + 1]; i++);//  cout << begin+1 << "* " << i-1 << endl;k = Jud(begin + 1, end - 1);}else{int n = 0;for (int i = begin; i <= end; i++) {if (!(str[i] >= '0' && str[i] <= '9'))break;n = n*10 + str[i] -'0';}k = make_pair(n, n);}return k;
}int main()
{int  i;while(cin>>str){memset(fst, 0, sizeof(fst));len = strlen(str);fst[0] = 1;//   printf("%d ",fst[0]);for(i = 1; i <= len - 1; i++){                           if(str[i - 1]== '(')   fst[i] = fst[i - 1] + 1;else if(str[i] == ')')fst[i] = fst[i - 1] - 1;elsefst[i] = fst[i - 1];//        printf("%d ",fst[i]);}//    puts("");pair<int,int> ans = Jud(0, len - 1); printf("%d %d\n", ans.first, ans.second);}return 0;
}

 

这篇关于ACM-ICPC 2018 沈阳赛区网络预赛 B Call of Accepted的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/720210

相关文章

【Altium】查找PCB上未连接的网络

【更多软件使用问题请点击亿道电子官方网站】 1、文档目标: PCB设计后期检查中找出没有连接的网络 应用场景:PCB设计后期,需要检查是否所有网络都已连接布线。虽然未连接的网络会有飞线显示,但是由于布线后期整板布线密度较高,虚连,断连的网络用肉眼难以轻易发现。用DRC检查也可以找出未连接的网络,如果PCB中DRC问题较多,查找起来就不是很方便。使用PCB Filter面板来达成目的相比DRC

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

Toolbar+DrawerLayout使用详情结合网络各大神

最近也想搞下toolbar+drawerlayout的使用。结合网络上各大神的杰作,我把大部分的内容效果都完成了遍。现在记录下各个功能效果的实现以及一些细节注意点。 这图弹出两个菜单内容都是仿QQ界面的选项。左边一个是drawerlayout的弹窗。右边是toolbar的popup弹窗。 开始实现步骤详情: 1.创建toolbar布局跟drawerlayout布局 <?xml vers

使用 GoPhish 和 DigitalOcean 进行网络钓鱼

配置环境 数字海洋VPS 我创建的丢弃物被分配了一个 IP 地址68.183.113.176 让我们登录VPS并安装邮件传递代理: ssh root@68.183.113.176apt-get install postfix 后缀配置中的点变量到我们在 DigitalOcean 中分配的 IP:mynetworks nano /etc/postfix/main.cf

Linux网络编程之循环服务器

1.介绍 Linux网络循环服务器是指逐个处理客户端的连接,处理完一个连接后再处理下一个连接,是一个串行处理的方式,比较适合时间服务器,DHCP服务器.对于TCP服务器来说,主要阻塞在accept函数,等待客户端的连接。而对于UDP服务器来说,主要阻塞在recv函数. 2.循环服务器模型 TCP循环服务器: 算法如下:          socket(...);

Linux网络编程之简单并发服务器

1.概念 与前面介绍的循环服务器不同,并发服务器对服务请求并发处理。而循环服务器只能够一个一个的处理客户端的请求,显然效率很低. 并发服务器通过建立多个子进程来实现对请求的并发处理,但是由于不清楚请求客户端的数目,因此很难确定子进程的数目。因此可以动态增加子进程与事先分配的子进程相结合的方法来实现并发服务器。 2. 算法流程 (1)TCP简单并发服务器:     服务器子进程1:

Android 扇形网络控件 - 无网络视图(动画)

前言 一般在APP没有网络的情况下,我们都会用一个无网络的提示图标,在提示方面为了统一app的情况,我们一般使用简单的提示图标,偶尔只需要改变一下图标的颜色就一举两得,而不需要让PS来换一次颜色。当然app有图标特殊要求的就另当别论了。 效果图 当你第一眼看到这样的图,二话不说直接让UI给你切一张图标来的快对吧,我其实开始也是这么想的,但是到了做的app越来越多的时候,你就会发现就算是用

poj 2391 Ombrophobic Bovines (网络流)

这是一道很经典的网络流的题目。首先我们考虑假如我们的时间为无穷大。我们吧每个点拆成2个点 i和i' .。虚拟源点s和汇点t。对于每个点建边(s,i, a[i])  (i‘,t,ib[i]) 。 其中a[i]为给点有多少牛,b[i]为容量。i和j连通 建边 (i,j',inf);如果最大流==所有牛的个数,就可能装下所有的牛。那么现在我们考虑时间。假设最大时间为T.那么如果i到j的的最短时间>T

libssh-cve_2018_10933-vulfocus

1.原理 ibssh是一个用于访问SSH服务的C语言开发包,它能够执行远程命令、文件传输,同时为远程的程序提供安全的传输通道。server-side state machine是其中的一个服务器端状态机。   在libssh的服务器端状态机中发现了一个逻辑漏洞。攻击者可以MSG_USERAUTH_SUCCESS在身份验证成功之前发送消息。这样可以绕过身份验证并访问目标SSH服务器。 本来是靶机要

加载网络图片显示大图

1.将图片的uri列表和下标传给ImagePagerActivity public void imageBrower(int position, ArrayList<String> urls2) {Intent intent = new Intent(this, ImagePagerActivity.class); intent.putExtra(ImagePagerActivity