题目链接 \(Description\) 有一棵高度为\(h\)的满二叉树,点从\(1\)到\(2^h-1\)编号(无序).每次你可以询问一个点的编号,交互库会返回其所有邻接点的编号.你需要在\(16\)次询问内确定这棵树根节点的编号. \(h\leq 7\). \(Solution\) 考虑随便问一个点,然后任意找个相邻点走.这样如果不往回走,最差情况下是一直走到一个叶子,这样找走两遍,扩展出一条叶子到叶子的链,就可以往上扩展了.这样最多扩展\(1+2+\ldots+7=28\)个点,但是确定…
codeforces Good bye 2016 E 线段树维护dp区间合并 题目大意:给你一个字符串,范围为‘0’~'9',定义一个ugly的串,即串中的子串不能有2016,但是一定要有2017,问,最少删除多少个字符,使得串中符合ugly串? 思路:定义dp(i, j),其中i=5,j=5,因为只需要删除2016当中其中一个即可,所以一共所需要删除的字符和需要的字符为20176,因此i和j只要5就够了. 然后转移就是dp(i,i) = 0, 如果说区间大小为1的话,那么如果是2017中的一个…
Performance ReviewEmployee performance reviews are a necessary evil in any company. In a performance review, employees give written feedback about each other on the work done recently. This feedback is passed up to their managers which then decide pr…
A - New Year and Hurry (water) #include <bits/stdc++.h> using namespace std; int main() { ]; ; i <= ; i++) { a[i] = ( + i) * i / * ; } int n ,k; while(~scanf("%d%d", &n, &k)) { ; ; i <= n; i++) { - k >= a[i]) ans = i; } pr…
题目链接:http://codeforces.com/problemset/problem/653/F 大意是给出一个只包含'('和')'的括号串,求有多少不同的子串是合法的括号串 解法:对于每一个后缀,需要能够求出这个后缀有多少前缀是合法的括号串,这个可以用O(log n)复杂度的二分来解决.注意,二分的范围并不是整个后缀,因为如果将'('视作+1, ')'视作-1,则一个合法的括号串必须时刻不能小于0.所以可以在ST表上二分出合法范围,在这个范围内去统计有多少合法串(即'('与')'正负相消…
Problem F Removal GameBobby Roberts is totally bored in his algorithms class, so he’s developed a little solitaire game. He writes down a sequence of positive integers and then begins removing them one at a time. The cost of each removal is equal to…
F - New Year and Cleaning 这题简直是丧心病狂折磨王.. 思路:容易想到这样一个转换,把整个矩形一起移动,矩形移出去的时候相当于一行或者一列. 为了优化找到下一个消去的点,我先把原数组扩大两倍,用了st表加二分去找,然后就MLE, 我又换了 线段树TLE,最后不把数组扩大两倍ST表+二分过的.. 每次消去的点都是不变的,所以可以做到线性复杂度. #include<bits/stdc++.h> #define LL long long #define fi first #…
F - New Year Shopping 对于一种特殊的不可逆的dp的拆分方法.. 也可以用分治写哒. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #define mk make_pair #define PII pair<int, int> #define y1 skldjfskldjg #define y2 skldfjsklejg using namespac…
F. Ace It! 题目连接: http://www.codeforces.com/contest/656/problem/F Description Input The only line of the input is a string of 7 characters. The first character is letter A, followed by 6 digits. The input is guaranteed to be valid (for certain definit…
A. New Year and Hurry time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output Limak is going to participate in a contest on the last day of the 2016. The contest will start at 20:00 and will last f…
传送门 题意: 给出一个长度为\(n\)的串,现在有\(q\)个询问,每个询问是一个区间\([l,r]\),要回答在区间\([l,r]\)中,最少需要删多少个数,满足区间中包含\(2017\)的子序列而不包含\(2016\)的子序列. 思路: 先不考虑多个询问,那么这个问题区间\(dp\)可以解决,状态定义中要附加状态转移的代价. 比如当前数字为\(7\),那么显然从状态\(201\)转移过来需要\(0\)的花费:但如果不要\(7\),那么从状态\(201\)到状态\(201\)则需要\(1\)…
题目链接:http://codeforces.com/contest/750/problem/D 题意:新年烟花爆炸后会往两端45°差分裂.分裂完后变成2部分,之后这2部分继续按这种规则分裂.现在给你每一步分裂的个数.有可能几个部分都是分裂到一个位置,这种情况只算一个.问最后分裂完有多少个. 思路:模拟即可.由于n最多30,每次最多分裂5个.所以总体规模不是很大.但是需要记忆化一下防止TLE.G[][]表示被覆盖的格子.vis[k][i][j][d]表示第k次分裂在位置(i,j)方向为d时是否出…
题目链接:http://codeforces.com/contest/750/problem/C 题意:在CF中,每个人都有个Rank值. 当Rank>=1900时,为DIV1.Rank<1900时,为DIV2.现在给你参加每一场的DIV值和参加完这一层后的Rank值变化.问最大可能的初始Rank值.如果答案无限大输出Infinity,如果不可能出现输入的情况输出impossible.其他情况输出可能的最大答案. 思路:二分初始Rank值,然后在二分出来的初始Rank值在计算过程中发现分值在D…
题目链接:http://codeforces.com/contest/750/problem/B 题意:地球的子午线长度为40000,两极点的距离为20000.现在你从北极出发,按照题目输入方式来走.有规定在北极时只能往南方向走,同理在南极.最后走完后要回到北极.问输入的路线是否合法. 思路:按照题意模拟就好了.定义Point为离北极的距离,初始Point为0,因为起点在北极. 当这次行动为w/e时如果Point为0/20000(在极点)时路线不合法. 当这次行动为n时,如果Point为2000…
题目链接:http://codeforces.com/contest/750/problem/A 题意:有n场比赛要打,第i场比赛需要花i*5分钟来完成,比赛从20:00开始.然后新年派对24:00开始,需要花k分钟才能到达派对现场.问现在最多可以参加多少场比赛. 思路:从20点到24点有240分钟. 240-k为可以参加比赛的时间.然后暴力算就好了. #define _CRT_SECURE_NO_DEPRECATE #include<iostream> #include<cstring…
A B很水就略了.. C.又是一次wannafly一样的判断区间的.....  边界设为2000000  正好GG...... fst的时候立马想到上次也是这么wa过的...... 所以下次遇到这种题.... 边界还是 写INT_MIN 和  INT_MAX了 哈哈  写的时候  还是感觉蛮舒服的 D.每层烟花爆炸后沿与当前方向成45度的方向飞 经过t秒下一层爆炸 ..然后问到过的点的位置 最远的地方是150  等于300×300的图 那么我们 直接放在一个vis标记 再放一个 剪纸数组 n*8…
给出烟花的爆炸方式和爆炸次数 问最后有多少个格子会被炸到 如果dfs的话会超时... 利用模拟每一层来搜索..? 思想就是一开始有一个爆炸点向上 然后模拟完第一段 会产生一个爆炸点 朝两个方向 就用vector来存 每一层都处理一段的爆炸点 产生新一段的爆炸点 因为5*30=150 所以图建300就可以了 300 * 300 * 30的时间复杂度 但是常数很大..不过无所谓啦.. 需要注意的是 一个爆炸点可能会同时出现两次朝同一个方向开始爆炸的烟花 这个是没有意义的 所以拿一个数组来记录 不然最…
http://codeforces.com/contest/750/problem/D 题目大意: 放鞭炮,鞭炮会爆炸n次,每次只会往目前前进方向的左上和右上放出他的子鞭炮.问,最后能有多少格子被覆盖? 思路: 感觉是期末复习阶段太久没有敲代码了的缘故吧,记忆化搜索的状态找的都不准确了. bfs,然后定义dp(x,y,z,dir)表示在(x,y)这个位置,第z次爆炸,爆炸方向为dir.如果这个状态存在,就不放入队列. //看看会不会爆int!数组会不会少了一维! //取物问题一定要小心先手胜利的…
http://codeforces.com/contest/750/problem/C 反正我不会这道题...为什么那么多人做出来了...我好菜.jpg 题目大意:cf每个人都有分数,每次都会在div2(<=1899)或者div1(>=1900)打比赛.有n个输入,每次输入ci和di,ci表示打了该场比赛以后的得分,di表示打的是div1还是div2,问,最后那个人可能得到的最高的分数是多少? 思路: For every contest we know that the current rat…
好久没有fst题了...比赛先A了前4题然后发现room里有人已经X完题了没办法只能去打E题,结果差一点点打完...然后C题fst掉了结果就掉rating 了...下面放题解 ### [A. New Year and Hurry](http://codeforces.com/problemset/problem/750/A) 题目大意:给定n道题和时间t,每完成第i道题需花$5*i$ 分钟,求在$240-t$分钟内完成的最大题数. 直接模拟,求完成i道题所花时间$t_i+t\leq 240$ 的…
传送门 首先如果一开始就找到了一个叶子,那么暴力去递归找它的父亲,每次随机一个方向(除了已知的儿子)走深度次,如果走到了一个叶子就不是这个方向 (设根的深度为 \(1\))这样子最后到达深度为 \(3\) 的点需要花费 \(11\) 次 注意到此时只有与该点距离不超过 \(2\) 的点可能是根,这样的没有询问过的点不超过 \(6\) 个 所以只要询问 \(5\) 次,一共 \(16\) 次 如果一开始不是叶子,那么尝试 \(dfs\) 到一个叶子,最后再套用上面的做法 注意每次随机一个方向的时候…
A题,水题略过. B题,也水,但是想复杂了.只要运动超出[0,20000]的范围就算不可能了. C题,我自己的方法是解不等式,然后取最大的答案即可.代码如下: #include <stdio.h> #include <algorithm> #include <string.h> #include <iostream> #include <string> #include <map> #include <vector> us…
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard output This is an interactive problem. In the interaction section below you will find the information about flushing the output. The New Year tree of h…
<table width="550" border="2" align="center" cellpadding="0" cellspacing="0"> 推荐品牌 <tr> <td width="555" height="110"><table width="530" height="110&q…
正解:构造 解题报告: 传送门! 交互题交互题!哇好新鲜啊QwQ 首先考虑最傻逼的做法,应该是每个人都能想到的 首先看一下它给的条件,考虑到完全二叉树的性质,就可以发现,如果给的邻居只有一个,说明是叶子,有两个,说明是根,有三个,说明是普通的节点 然后就分情况讨论鸭(以下内容都是从最差的情况即h=7为基础的讨论 如果运气好,问到了根,得嘞那就不用再问辣ans出来辣 如果问到了一个叶子节点,那就会给一个非根非叶子节点,就继续询问这个普通节点 如果问到了一个普通节点,就会有三个邻居,那就依次选,并利…
package RegexTest; /** * Created by hu on 2016/3/29. */ /* * Java的正则表达式 在正则表达式中,用\d表示一位数字,如果在其它语言中使用过正则表达式, 就会发现Java对反斜线\的不同处理.在其它语言中\\表示"想要在正则表达式中 插入一个普通的(字面上的)反斜线,请不要给它任何意义". 而在Java中\\的意思是"想要插入一个正则表达式的反斜线, 所以其后面的字符具有特殊的意义".例如,想要表达一位数…
熟练掌握dp的定义方法. ①四维dp的转移,生命值转移时候需要注意的 ②集合的定义,判断二进制内部是否有环 ③很难想到的背包问题 ④博弈类型的dp ⑤排列组合类型dp ⑥01背包的变种(01背包+完全背包) ⑦codeforces Good bye 2016 E 线段树维护dp区间合并 ⑧ ⑨ ⑩ ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳ 一:http://www.cnblogs.com/heimao5027/p/5988770.html 四维dp 或者 剪枝 + dfs Codeforces B…
Exercises for IN1900October 14, 2019PrefaceThis document contains a number of programming exercises made for the courseIN1900. The chapter numbers and titles correspond to the chapters of the book“A primer on Scientific Programming with Python” by Ha…
1.1.架构规划 1.1.1架构规划准备 服务器系统 角色 IP Centos6.7 x86_64 NFS服务器端(NFS-server-inotify-tools) 192.168.1.14 Centos6.7 x86_64 rsync服务器端(rsync热备服务器) 192.168.1.17 1.1.2架构图 2.1 部署前检查 2.1.1 检查rsync热备服务器daemon是否起来 [root@backup data]# lsof -i:873 COMMAND PID USER FD T…
1.1 rsync服务器端配置 1.1.1 查看服务器端rsync版本 1.1.2 创建配置文件 默认安装好rsync程序后,并不会自动创建rsync的主配置文件,需要手工来创建,其主配置文件为“/etc/rsyncd.conf”,创建该文件 并插入如下内容: #Rsync server #create by zhurui 18:15 2016-3-1 ##rsyncd.conf start## uid = rsync gid = rsync use chroot = no max connec…