another

cf1088D Ehab and another another xor problem(思维)

送分小仙女□ 提交于 2020-02-12 23:14:55
交互题 题目讲的是,有两个数(a,b)让猜,每次询问只能问(c,d)如果a^c < b^d 返回-1,如果a^c > b^d 返回1 ,相等返回0 62次以内问出来。 这个肯定是要按位处理,从高到低,那么a,b的这一位的组合也就四种(0,0)(0,1)(1,0)(1,1),我们想要确认出来,从下表可以看出,可以询问c,d这一位分别为(0,1)或者(1,0)各一次,如果结果不一样就可以确定这一位,但是如果是一样但是是不确定的的话,那么也就是说,两个其中一个这一位一定是1,可是怎么判断谁是1呢,这就要从两个数字的大小来判断。 我们可以询问一下(0,0)确定了两个数字的大小关系,然后碰到了两者必须填一个1的情况,就给大的那个数填一个1,然后把两个都假设成1,更新一下两个后半截的大小关系。 #include<bits/stdc++.h> #define ll long long using namespace std; const ll MAXN = 1e5+5; ll r; int main() { ll a=0,b=0; ll c = 0,d = 0,qa=0,qb=0; ll k = 1; printf("? %lld %lld\n",a,b); fflush(stdout); scanf("%lld",&r); if(r == -1)k = 0; for(ll i=29;i>=0

LightOJ 1079 Just another Robbery

跟風遠走 提交于 2020-02-12 15:56:48
抢银行,不能高于一个概率p,一共有n个银行。下面是存款+被抓概率; dp[i][j]表示第i个银行之前,抢到j元的最大逃脱概率。 v[i]是概率,w[i]是钱数; 每次留下w[i]的空间,由之前的那个状态到这个状态(抢这个银行),又因为独立,所以就乘以概率就行; dp[i][j]=max(dp[i-1][j],dp[i-1][j-w[i]]*(1-v[i])); #include <iostream> #include <functional> #include <algorithm> #include <complex> #include <cstdlib> #include <cstring> #include <fstream> #include <iomanip> #include <sstream> #include <utility> #include <bitset> #include <cctype> #include <cstdio> #include <limits> #include <memory> #include <string> #include <vector> #include <cmath> #include <ctime> #include <queue> #include <stack> #include <list> #include

python-原型模式

六月ゝ 毕业季﹏ 提交于 2020-02-11 08:15:01
源码地址: https://github.com/weilanhanf/PythonDesignPatterns 说明 原型模式关注的是大量相同对象或相似对象的创建问题,意图在于通过复制一个已经存在的实例来获得一个新的实例,以避免重复创建此类实例带来的开销。被复制的实例就是这个“原型”,这个原型是可定制的。 实例: 在Photoshop等平面设计的软件中,图层概念的提出,使得设计、图形修改等操作更加便利。设计师既可以修改和绘制当前图像对象,又可以保留其它图像对象,逻辑清晰,且可以及时得到反馈。示例中一图层为主角,介绍原型模式。 from copy import copy, deepcopy class simpleLayer: """    设计一个图层对象,用background表示背景的RGBA,简单用content表示内容,除了直接绘画,还可以设置透明度。   """ background=[0,0,0,0] content="blank" def getContent(self): return self.content def getBackground(self): return self.background def paint(self,painting): self.content=painting def setParent(self,p): self

CodeForces 1249A --- Yet Another Dividing into Teams

非 Y 不嫁゛ 提交于 2020-02-11 06:08:28
【CodeForces 1249A --- Yet Another Dividing into Teams】 Description You are a coach of a group consisting of n students. The i-th student has programming skill ai. All students have distinct programming skills. You want to divide them into teams in such a way that: No two students i and j such that |ai−aj|=1 belong to the same team (i.e. skills of each pair of students in the same team have the difference strictly greater than 1); the number of teams is the minimum possible. You have to answer q independent queries. Input The first line of the input contains one integer q (1≤q≤100) — the number

CF1073G Yet Another LCP Problem

两盒软妹~` 提交于 2020-02-09 17:38:43
一、题目 点此看题 二、解法 先对原串的反串建后缀自动机,然后两个后缀的 l c p lcp l c p 就是它们在自动机上的 l c a lca l c a 长度。 然后就可以在后缀自动机 d p dp d p ,设 s a [ u ] sa[u] s a [ u ] 为 u u u 子树内 A A A 集合元素个数, s b [ u ] sb[u] s b [ u ] 意义差不多,那么答案就可以这样算: ( s a [ u ] − s a [ v ] ) ∗ s b [ v ] ∗ l e n [ u ] (sa[u]-sa[v])*sb[v]*len[u] ( s a [ u ] − s a [ v ] ) ∗ s b [ v ] ∗ l e n [ u ] 注意此时 s a , s b sa,sb s a , s b 没把本节点是不是集合元素算进去,所以还要继续算贡献: ( a [ u ] ∗ b [ u ] + a [ u ] ∗ s b [ u ] + b [ u ] ∗ s a [ u ] ) ∗ l e n [ u ] (a[u]*b[u]+a[u]*sb[u]+b[u]*sa[u])*len[u] ( a [ u ] ∗ b [ u ] + a [ u ] ∗ s b [ u ] + b [ u ] ∗ s a [ u ] ) ∗ l e n [ u ]

CodeForces 1296 C Yet Another Walking Robot

别来无恙 提交于 2020-02-06 03:08:56
题意: 有四个走的方向,问保证不改变初始位置和终点位置的情况下怎么删除最少的字符串才符合。 用一个map来记录走过的位置,只要出现回到当前位置我们就把这一段的给删掉。 两种写法。 C o d e 1 : Code1: C o d e 1 : # include <cstdio> # include <vector> # include <queue> # include <cstring> # include <cmath> # include <map> # include <set> # include <string> # include <iostream> # include <algorithm> # include <iomanip> # include <stack> # include <queue> using namespace std ; # define sd(n) scanf("%d", &n) # define sdd(n, m) scanf("%d%d", &n, &m) # define sddd(n, m, k) scanf("%d%d%d", &n, &m, &k) # define pd(n) printf("%d\n", n) # define pc(n) printf("%c", n) # define pdd(n, m) printf(

C. Yet Another Walking Robot Round #617 (Div. 3)()(map + 前后相同状态的存储)

不想你离开。 提交于 2020-02-05 22:51:37
C. Yet Another Walking Robot time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output There is a robot on a coordinate plane. Initially, the robot is located at the point (0,0)(0,0). Its path is described as a string 𝑠s of length 𝑛n consisting of characters ‘L’, ‘R’, ‘U’, ‘D’. Each of these characters corresponds to some move: ‘L’ (left): means that the robot moves from the point (𝑥,𝑦)(x,y) to the point (𝑥−1,𝑦)(x−1,y); ‘R’ (right): means that the robot moves from the point (𝑥,𝑦)(x,y) to the point (𝑥+1,𝑦)(x+1,y); ‘U’ (up): means that the robot

周报_2012第03周(2012/01/15-2012/01/21)

情到浓时终转凉″ 提交于 2020-02-05 06:13:25
项目:天犬车辆收费管理系统 2012.01.17 配置文件 11:02 已完成 // 注意保存的顺序(Configuration.Save 和 XmlDocument.Save)! // Error: "The configuration file has been changed by another program" // "配置文件已被另一个程序更改" // 解决此问题耗时10+ Hours, Added By Shupeng.Li 2012/01/17 10:54. 发布部署 11:08 已完成 运行环境:Windows XP + SQL Server 2008 界面美化 DataGridView样式调整 11:27 已完成 来源: https://www.cnblogs.com/DancingFish/archive/2012/01/17/2324429.html

Codeforces 1296C - Yet Another Walking Robot

£可爱£侵袭症+ 提交于 2020-02-05 01:47:21
题目大意: 给定一个机器人的行走方式 你需要取走一段区间 但要保证取走这段区间后机器人最终到达的终点位置是不变的 问这段区间最短时是哪一段 解题思路: 易得,如果重复走到了某些已经走过的点,那么肯定就有一段区间可以被删除 但是行走次数最大有2e5,即用数组记录坐标状态的话起码要开4e5*4e5的空间,显然不可能 所以可以用map储存上一次走到某个坐标是第几步 那么每次只要判断当前的坐标是否已经被走过即可,走过的话就尝试更新答案 因为map中未调用过的int值为0 所以让原点的步数设置为1防止混淆 初始设置 l=0,r=n+1去最大化这个答案区间,便于第一次判断得以执行 然后,遍历这个字符串,如果发现某个点已经走过了,取出这个步数为 d 可以得到 d+1~i 这一段是可以删除的(d步不可取,因为那一步走完才能到达这个点) 那么就拿 i-(d+1) 和 r-l 作比较,即当 r-l>i-(d+1) => r-l>=i-d 时,更新lr答案 最后把第一步的步数减回去就可以作为答案了(l=0,说明不存在) 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 struct P{ 5 int x,y; 6 bool operator < (const P& a) const{ 7 return x

LeetCode 572. Subtree of Another Tree

六眼飞鱼酱① 提交于 2020-02-04 00:47:27
Description Given two non-empty binary trees s and t , check whether tree t has exactly the same structure and node values with a subtree of s . A subtree of s is a tree consists of a node in s and all of this node's descendants. The tree s could also be considered as a subtree of itself. Example 1: Given tree s: 3 / \ 4 5 / \ 1 2 Given tree t: 4 / \ 1 2 Return true , because t has the same structure and node values with a subtree of s. Example 2: Given tree s: 3 / \ 4 5 / \ 1 2 / 0 Given tree t: 4 / \ 1 2 Return false . Solution 也是对每一个结点都以其为头结点进行判断。 /** * Definition for a binary tree node. *