autoit

ACM-ICPC SouthWestern Europe Regional Contest 2017题解

久未见 提交于 2020-05-05 13:28:39
题目地址 http://codeforces.com/gym/101635/ A 题: 计算两个数组元素之间最有可能的差值,注意数据全部非法时的情况 #include<bits/stdc++.h> using namespace std; const int maxn = 2005 ; int a[maxn], b[maxn]; int main() { int n, m; scanf( " %d%d " , &n, & m); unordered_map < int , int > mp; for ( int i = 0 ; i < n; ++ i) { scanf( " %d " , a + i); } for ( int i = 0 ; i < m; ++ i) { scanf( " %d " , b + i); for ( int j = 0 ; j < n; ++ j) { if (a[j] > b[i]) break ; ++mp[b[i] - a[j]]; } } int max_num = 0 , max_cnt = 0 ; for (auto i : mp) { if (max_cnt < i.second || max_cnt == i.second && i.first < max_num) { max_cnt = i.second; max_num = i

CCF 201403-3 命令行选项

隐身守侯 提交于 2020-05-02 15:58:37
问题描述 试题编号: 201403-3 试题名称: 命令行选项 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述   请你写一个命令行分析程序,用以分析给定的命令行里包含哪些选项。每个命令行由若干个字符串组成,它们之间恰好由一个空格分隔。这些字符串中的第一个为该命令行工具的名字,由小写字母组成,你的程序不用对它进行处理。在工具名字之后可能会包含若干选项,然后可能会包含一 些不是选项的参数。   选项有两类:带参数的选项和不带参数的选项。一个合法的无参数选项的形式是一个减号后面跟单个小写字母,如"-a" 或"-b"。而带参数选项则由两个由空格分隔的字符串构成,前者的格式要求与无参数选项相同,后者则是该选项的参数,是由小写字母,数字和减号组成的非空字符串。   该命令行工具的作者提供给你一个格式字符串以指定他的命令行工具需要接受哪些选项。这个字符串由若干小写字母和冒号组成,其中的每个小写字母表示一个该程序接受的选项。如果该小写字母后面紧跟了一个冒号,它就表示一个带参数的选项,否则则为不带参数的选项。例如, "ab:m:" 表示该程序接受三种选项,即"-a"(不带参数),"-b"(带参数), 以及"-m"(带参数)。   命令行工具的作者准备了若干条命令行用以测试你的程序。对于每个命令行,你的工具应当一直向后分析。当你的工具遇到某个字符串既不是合法的选项

[Ynoi2015]纵使日薄西山

最后都变了- 提交于 2020-04-30 04:23:28
题目大意: 给定一个序列,每次单点修改,然后进行询问。 定义一次操作为,选择一个位置$x$,将这个位置的数和左边、右边两个位置的数(不存在则忽略)各减去1,然后和0取max。 对序列中最大的位置进行一次操作(相同则取最前面的),不断重复,直到所有位置为0为止。 问执行了多少次操作。 询问互相独立(即下一次询问的序列并不是全0)。 解题思路: 在太阳西斜的这个世界里,置身天上之森。等这场战争结束之后,不归之人与望眼欲穿的众人, 人人本着正义之名,长存不灭的过去、逐渐消逝的未来。我回来了,纵使日薄西山,即便看不到未来,此时此刻的光辉,盼君勿忘。————世界上最幸福的女孩 我的愿望是,和珂朵莉一样可爱。 淦不动辣QaQ就窝一个在那瞎分块 一开始的做法是先分块,求出块内的答案,然后瞎分类讨论(自闭了QAQ)。 实际上这个性质挺优美的 为啥窝就是发现不了啊 显然一次对某个位置操作到底,和答案是一样的(当你选择这个数进行操作后,其左边和右边就永远不会被操作。而其他数对这个位置无影响)。 所以相当于求所有会被操作的位置上的数的和。 考虑一个单调递增或单调递减的序列,在这上面选的数一定是一个选一个不选(奇偶性相同)。 所以我们对奇数、偶数位置分别用树状数组维护一下,然后用set记录序列的极大、极小值的位置。则可以快速计算出两个极值之间的区间的贡献。 然后对于单点修改

[Ynoi2016]镜中的昆虫

房东的猫 提交于 2020-04-30 03:19:41
题目大意: 给定一个序列,有2个操作: 1. 区间覆盖。 2. 区间数颜色。 解题思路: 珂朵莉树+树套树。 看到区间覆盖当然想到珂朵莉树 然而这是Ynoi 所以我们得优化掉珂朵莉树那个暴力过程。 考虑对每个位置,记录它这个颜色前一次出现的位置pre(它本身是第一次则为0)。 对一段颜色相同的区间,除了第一个位置,其他位置的pre都是位置-1。 用树套树,第一维为原本位置,第二维为pre,然后对于查询$[l,r]$区间的颜色个数,相当于$[l,r]$区间,pre在$[0,l-1]$的个数。 考虑一次修改,最多增加$O(m)$个区间,所以总区间个数是$O(n+m)$的。所以暴力删除复杂度是对的。 用珂朵莉树(其实是个set,不过珂朵莉树的split比较方便)维护相同颜色区间,对每种颜色再开set存所有区间。 然后对于每次修改,先把pre可能变动的位置弄出来,再修改珂朵莉树和set里的信息,最后再重新求那些pre,在树套树上修改即可。 时间复杂度$O((n+m)\log^2 n)$。 C++ Code: #include<cstdio> #include<cctype> #include<set> #include<map> const int N=100005,M=1.5e7+5; struct istream{ char buf[23333333],*s; inline

[LeetCode] 266. Palindrome Permutation 回文全排列

僤鯓⒐⒋嵵緔 提交于 2020-04-28 07:15:14
Given a string, determine if a permutation of the string could form a palindrome. For example, "code" -> False, "aab" -> True, "carerac" -> True. Hint: Consider the palindromes of odd vs even length. What difference do you notice? Count the frequency of each character. If each character occurs even number of times, then it must be a palindrome. How about character which occurs odd number of times? 给一个字符串,判断它的全排列中是否有回文。 解法:基本原理就是,如果字符串长度为单数,那么可以有一个字符是单数,其它出现的字符必须都是双数。如果字符串长度为偶数,那么所有的字符都必须是双数,才能组成回文。 具体实现方法可以有多种。 Java: public class Solution { public boolean canPermutePalindrome(String s) { Map

[LeetCode] 267. Palindrome Permutation II 回文全排列 II

痞子三分冷 提交于 2020-04-28 06:41:00
Given a string s , return all the palindromic permutations (without duplicates) of it. Return an empty list if no palindromic permutation could be form. For example: Given s = "aabb" , return ["abba", "baab"] . Given s = "abc" , return [] . Hint: If a palindromic permutation exists, we just need to generate the first half of the string. To generate all distinct permutations of a (half of) string, use a similar approach from: Permutations II or Next Permutation . 266. Palindrome Permutation 的拓展,266只是判断全排列是否存在回文的,此题要返回所有的回文全排列。提示:如果回文全排列存在,只需要生成前半段字符串,后面的直接根据前半段得到。用Permutations II or Next

Robot Framework自动化框架搭建步骤(Python+Robot Framework+Eclipse)

徘徊边缘 提交于 2020-04-28 03:36:29
Robot Framework自动化框架由Python+Robot Framework+Eclipse组成的,具体步骤如下: 说明:安装主要分为两部分,第一部分是Python和robot Framework库的安装;第二部分是Eclipse中相关插件的安装,可以在eclipse中编写脚本,如果不想用eclipse编译环境,可以使用Ride图形化界面编译环境。 (一)Python和robot Framework 安装 1.Python的安装 python2和python3语法变化较多,本文使用python2.7,选择对应的操作系统安装包,windows 的点击msi文件直接安装即可。 安装后需要配置环境变量:计算机-属性-高级系统设置-环境变量-系统变量-Path,写入C:\Python27;C:\Python27\Scripts(更改为您指定路径即可) 2. Robot Framework和相关库的安装 有2种方式: 第一种,在https://pypi.python.org/pypi中下载相应的库,格式为tar.gz包或zip包,解压后文件夹中有setup.py的文件,打开命令提示符窗口,进入到加压后的文件夹的路径,输入命令 python setup.py install,相应的包就安装了。 python setup.py install 或者格式为.whl格式,本质上是一个压缩包

(一)Robot Framework安装

六月ゝ 毕业季﹏ 提交于 2020-04-28 02:57:43
准备工作: Python 2.7 (目前不能良好支持python3) pip 和 setuptools (Python 的套件管理程式,最新版的Python 2.7.16已包含) Robot Framework (此工具本身) wxPython (Python 非常有名的一个GUI 库,支撑Ride的运行库) robotframework-ride (Robot Framework 测试数据的编辑器,它使测试用例的创建、运行、测试项目的组织可以在图形界面下完成) selenium2library (selenium2测试库,基于webdriver驱动) geckodriver, chromedriver 和 IEDriverServer (浏览器驱动,据说45以上的版本Firefox驱动也不再是默认包含) AutoItLibrary (autoit库包,用于进行Windows GUI的自动化操作) pywin32 (AutoIt的运行环境) autoit (autoit客户端程序,实际运用中,必须装了autoit才能用AutoItLibrary ) 安装python 官网:https://www.python.org/downloads/ ---2.7X版本 ---环境变量:C:\Python27;C:\Python27\Scripts; ---如果机子上有3.X版本

Selenium2+python自动化-文件上传

旧街凉风 提交于 2020-04-26 07:03:53
前言   文件上传是web页面上很常见的一个功能,自动化成功中操作起来却不是那么简单。   一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决;另外一种非input标签实现起来比较困难,可以借助autoit工具或者SendKeys第三方库。   本篇以百度的上传图片为案例,通过send_keys()方法解决文件上传问题。 一、识别上传按钮 1.点开百度的图片上传按钮,显示”本地上传图片”。 2.用firebug查看按钮属性,这种上传图片按钮有个很明显的标识,它是一个input标签,并且type属性的值为file。 3.只要找到这两个标识,我们就可以直接用send_keys()方法上传文件了。 二、定位元素   1.用firebug查看按钮属性,发现有class属性;   2.确定class唯一,所以直接用class语法定位; from selenium import webdriver driver = webdriver.Firefox() # 启动浏览器 driver.get( " https://www.baidu.com/ " ) # 请求地址 driver.find_element_by_class_name( " soutu-btn " ).click() # 点击照相机按钮 ''' 先定位上传图片按钮,直接send

[LeetCode] 300. Longest Increasing Subsequence 最长递增子序列

给你一囗甜甜゛ 提交于 2020-04-20 16:52:29
Given an unsorted array of integers, find the length of longest increasing subsequence. Example: Input: [10,9,2,5,3,7,101,18] Output: 4 Explanation: The longest increasing subsequence is [2,3,7,101] , therefore the length is 4 . Note: There may be more than one LIS combination, it is only necessary for you to return the length. Your algorithm should run in O( n2 ) complexity. Follow up: Could you improve it to O( n log n ) time complexity? 这道题让我们求最长递增子串 Longest Increasing Subsequence 的长度,简称 LIS 的长度。我最早接触到这道题是在 LintCode 上,可参见我之前的博客 Longest Increasing Subsequence ,那道题写的解法略微复杂,下面来看其他的一些解法