atk

bzoj 4570: [Scoi2016]妖怪 凸包

寵の児 提交于 2020-01-12 19:43:07
题目大意: http://www.lydsy.com/JudgeOnline/problem.php?id=4570 题解 我们知道如果一个怪物要取到攻击力的最大值,那么一定是把防御力都转化了 所以我们可以把题目转化成这个式子 求 \(min(max(atk + den + \frac{a}{b}dnf + \frac{b}{a}atk))\) 我们设 \(k = -\frac{b}{a}\) 那么上式变为了 \(min(max(atk + den - (\frac{1}{k}dnf + k*atk)))\) 右侧括号里是对勾函数的形式,我们由数学知识得 \(k = -\sqrt{\frac{dnf}{atk}}\) 时取得最值 现在我们尝试把所有的点映射到二维平面 设点 \((x,y)\) ,假设通过了一条斜率为 \(k(k < 0)\) 的直线 我们通过计算发现这个直线的横纵截距之和即为我们上面的计算式 而当 \(k = -\sqrt{\frac{dnf}{atk}}\) 横纵截距之和最小 所以问题转化成了为二维平面上的一些点确定一些平行线通过这些点使得最大的横纵截距之和最小 我们知道最大的条直线一定是通过上凸壳上的点的 所以我们枚举上凸壳上的点即可 #include <cmath> #include <cstdio> #include <cstring> #include

大话设计模式:备忘录模式

一世执手 提交于 2019-12-19 06:07:14
一、什么是备忘录模式 在不破坏对象内部状态的情况,捕获状态,并在外部保存该状态 保存一个对象的某一状态,以便在适当的时候恢复对象,这样对象就能恢复到之前的状态了。提供了可以恢复状态的机制,发起人可以让其恢复到某个历史状态。 UML图 Originator :发起人类,到时候需要存储它的不同状态,里面有一个存储状态方法和一个 恢复状态方法 Memento :备忘录,里面就是一堆数据,发起人类需要存储的数据 Caretaker :管理者,管理备忘录 二、适用场景 需要保存恢复的场景,可以回滚的操作.比如游戏的存档,你在打Boss之前可以先存一下档,然后这局boss打的不理想,就能恢复到存档的状态。比如浏览网页时跳到下一页,也可以回退到上一页。比如手机APP的一些操作,都可以回退。VS编写代码就可以很好的回退,使用Ctrl+Z ,Ctrl+Y操作。 三、优缺点 优点 可以保存想要的状态,在适当的时机恢复到该状态 封装了信息细节 缺点 资源消耗大,占用存储空间 四、大话中的例子 李逍遥战斗的例子, 在战斗之初 状态都是满的,存下档, 进去和boss战斗,状态都为0了,恢复一下状态, 状态又满了。李逍遥的类,属性:攻击 ,属性:生命值,存储状态的方法, 恢复状态的方法。一个备忘录,属性就是李逍遥的那些需要保存的属性。 一个管理器类,持有备忘录。李逍遥和管理器耦合。 五、我的例子 using

puppeteer踩坑记录

ⅰ亾dé卋堺 提交于 2019-12-05 00:09:56
错误代码1: error while loading shared libraries: libXcomposite.so.1: cannot open shared 解决方案: 在项目Chrome所在的目录例如: /home/code/puppeteer/node_modules/puppeteer/.local-chromium/linux-706915/chrome-linux/ 中运行 ldd chrome | grep not 依赖库 yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 -y 错误代码2: Running as root without --no-sandbox is not supported. 解决方案: 在puppeteer的launch中设置 puppeteer.launch({ args: ['--no-sandbox', '-

Problem F. Fighting Against Monsters dp

倾然丶 夕夏残阳落幕 提交于 2019-12-04 19:49:11
  XIX Open Cup named after E.V. Pankratiev Stage 15, Grand Prix of China 题意: 有三只怪兽,两只小怪(hp<=100),一个boss(hp<=1e6) 每回合开始 ,勇士先收到所有活着的怪物的攻击力总和的伤害,然后对一只怪兽造成回合i点的伤害(每回合递增1),问勇士最少耗费多少血杀死所有的怪兽 题解: #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=1e6+100; const ll inf=(1ll<<61)-1; ll dp[105][205][205],atk[4],hp[4],newatk[3],cost; ll gao(ll H) { ll t=(sqrtl(1+8*H)-1)/2; while(t*(t+1)/2>H)t--; while(t*(t+1)/2<H)t++; return t; } int main() { int cas;cin>>cas; while(cas--) { scanf("%lld%lld%lld%lld%lld%lld",&hp[1],&hp[2],&hp[3],&atk[1],&atk[2],&atk[3]); for(int i=0;i<=100;i++)

python27期day19:面向对象

会有一股神秘感。 提交于 2019-12-04 00:21:13
class GirlFriend(object): #定义女朋友类: eyes = 2 #类属性(静态属性),是属于当前类的 #当前类的所有对象,所共有的特征 sex = "女" """ 说明 """ #初始化方法 def __init__(self,name,age,height,weight): #实例属性 self.name = "qwe" self.age = age self.height = height self.weight = weight #函数属性 def xiyifu(self): #定义洗衣服功能: print(self.name,"洗衣服") def chuitu(self): #定义捶腿功能: print("捶腿") def tiwolianji(self): #定义替我联机功能: print("打怪升级")#调用类属性,需要使用类名去调用(对象名也可以调用,但是不建议)# print(GirlFriend.name)#类名不能调用实例属性,也不要去调用实例方法print(GirlFriend.eyes)#可以在对象创建时,就让他拥有不同的属性值girl_1 = GirlFriend("迪丽热巴",18,170,170)#通过对象调用类属性,没问题#但是不能修改print(girl_1.eyes)#如果通过对象去修改类属性,会创建一个新的实例属性

How to fix No package &#039;atk-bridge-2.0&#039; found error even though atk is installed and PKG_CONIG_PATH and LD_LIBRARY_PATH is set?

匿名 (未验证) 提交于 2019-12-03 01:45:01
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: First I have installed all the dependent packages including atk 2.18. Then, I have added them to path. # echo $LD_LIBRARY_PATH /opt/gtk_+3.12-RHEL6/dependencies/at-spi2-atk/lib:/opt/gtk_+3.12-RHEL6/dependencies/gobject-introspection/lib:/opt/gtk_+3.12-RHEL6/dependencies/pango/lib:/opt/gtk_+3.12-RHEL6/dependencies/harfbuzz/lib:/opt/gtk_+3.12-RHEL6/dependencies/freetype/lib:/opt/gtk_+3.12-RHEL6/dependencies/icu4c/lib:/opt/gtk_+3.12-RHEL6/dependencies/cairo/lib:/opt/gtk_+3.12-RHEL6/dependencies/fontconfig/lib:/opt/gtk_+3.12-RHEL6/dependencies

【NOI2018】屠龙勇士(数论,exgcd)

匿名 (未验证) 提交于 2019-12-03 00:43:02
洛谷 考场上半个小时就会做了,一个小时就写完了。。 然后发现没过样例,结果大力调发现中间值爆 \(longlong\) 了,然后就没管了。。 然后又没切掉。。。 我是真的傻逼。。。 首先每次选择的刀一定,直接一个 \(multiset\) 就算出来了。 然后对于每关都单独解一个方程 \(atk[i]x+p[i]y=a[i]\) ,直接 \(exgcd\) 求解即可。 但是注意题目方程的含义,所以 \(x\gt 0,y\le 0\) 所以要解出来之后还需要额外的计算一下(就是这里可能爆 \(ll\) ...) 那么此时对于每一个方程,我们都得到了一个最小的通解 \(X0[i]\) 那么,一个可行解 \(X=X0[i]+kd[i]\) ,其中 \(d[i]=p[i]/gcd(p[i],atk[i])\) , \(k\) 是常数。 考虑如何合并两个解, \(X0[1]+k_1d[1]=X0[2]+k_2d[2]\) 不妨令 \(X0[2]\gt X0[1]\) ,移项得 \(X0[2]-X0[1]=k_1d[1]+k_2d[2]\) 还是一个 \(exgcd\) ,同时 \(k_1\ge 0,k_2\le 0\) ,还是这里额外算一下,中间值可能爆 \(ll\) 然后就可以算出这两个方程合并后的最小特解 \(X0\) , 那么这两个方程合并后的通解就成了 \(X=X0+lcm(d[1]

loj#2721. 「NOI2018」屠龙勇士

匿名 (未验证) 提交于 2019-12-03 00:42:01
loj#2721. 「NOI2018」屠龙勇士 首先可以列出线性方程组 方程组转化为在模p意义下的同余方程 因为不保证pp 互素,考虑扩展中国剩余定理合并 方程组是带系数的,我们要做的是在%p意义下把系数除过去,(系数为atk[i]) (atk[i],p[i]) 不等于1时无逆元,此时仍可能有解 很显然无解的情况就是 瞎jb猜的,无解的话就是%p[i]意义下atk[i] != 0 ,a[i] = 0 考虑原方程式ai = atk{i] * x + p[i] * y 方程两边同除gcd(pi,atki)解不变 此时atki,pi此时保证了atki与pi互素 若ai不能被整除也是无解的 扩展crt 着实被winXP下输出lld坑了一把....顺带被自己抄的splay坑了一把 /* 苟活者在淡红的血色中,会依稀看到微茫的希望 */ #include<bits/stdc++.h> using namespace std; inline long long read() { long long x; scanf("%lld",&x); return x; } int n,m; #define LL long long const int maxn = 500007; LL a[maxn],p[maxn]; // x atk[i] = a[i] ( % p[i]) LL atk[maxn]

$TJOI$棋盘

ぐ巨炮叔叔 提交于 2019-12-02 19:46:56
\(TJOI\) 棋盘 状压 \(DP\) 加矩阵优化。 关于这道题的出题人。。。 他当年应该被打死了吧。。。 题目中的第 \(1\) 行第 \(k\) 列指的是从 \(0\) 开始标号下的第 \(1\) 行第 \(k\) 列,也就是说,这一题存在第 \(0\) 行第 \(0\) 列! 搞什么不好,非得要搞题意理解。。。 设 \(f[i][j]\) 为第 \(i\) 行,状态为 \(j\) 时的答案(我们只压了一行)。 如果 \(j\) 可以转移到 \(k\) ,则有 \(f[i+1][k]=f[i][j]+f[i+1][k]\) 。 这里我们发现,两个集合是否可以转移,这是固定的,也就是说,我们可以矩阵快速幂优化一下。 矩阵记得清零。。。 #include<bits/stdc++.h> using namespace std; #define int long long inline int read() { int f=1,w=0;char x=0; while(x<'0'||x>'9') {if(x=='-') f=-1; x=getchar();} while(x!=EOF&&x>='0'&&x<='9') {w=(w<<3)+(w<<1)+(x^48);x=getchar();} return w*f; } const int M=7; const int p=1LL<

Apache.Tomcat 调用Servlet原理之Class类的反射机制,用orc类解释

时间秒杀一切 提交于 2019-12-02 10:47:40
有一个兽人类 package com.swift.servlet; public class OrcDemo { private int hp; private int mp; private int atk; public int getHp() { return hp; } public void setHp( int hp) { this .hp = hp; } public int getMp() { return mp; } public void setMp( int mp) { this .mp = mp; } public int getAtk() { return atk; } public void setAtk( int atk) { this .atk = atk; } public OrcDemo() { } public OrcDemo( int hp, int mp, int atk) { super (); this .hp = hp; this .mp = mp; this .atk = atk; } public void orcInfo() { System.out.println( "hp" hp "mp" mp "atk" atk); } public static void main(String[] args) { OrcDemo