题意 Description Krito最终干掉了99层的boss,来到了第100层. 第100层能够表示成一颗树.这棵树有n个节点(编号从0到n-1),树上每个节点可能有非常多仅仅怪物. Krito如今在0号节点,如今它想要区清除这一层全部的怪物.他如今有atk大小的攻击力. 仅仅有当你的攻击力大于这仅仅怪物的防御力时,你才干够打败他.同一时候每打败仅仅怪物,你会获得一定的攻击力加成.一个节点可能存在着不止一仅仅怪兽,你要打败这个节点的全部怪物才干能够从这个节点通过,请问他能不能完毕这个任务?…
1169: Krito的讨伐 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 619  Solved: 102 Description Krito终于干掉了99层的boss,来到了第100层.第100层可以表示成一颗树,这棵树有n个节点(编号从0到n-1),树上每一个节点可能有很多只怪物. Krito现在在0号节点,现在它想要区清除这一层所有的怪物.他现在有atk大小的攻击力.只有当你的攻击力大于这只怪物的防御力时,你才可以打败他,同时每打败只怪物…
Problem A: Krito的讨伐 Description Krito终于干掉了99层的boss,来到了第100层.第100层可以表示成一颗树,这棵树有n个节点(编号从0到n-1),树上每一个节点可能有很多只怪物. Krito现在在0号节点,现在它想要区清除这一层所有的怪物.他现在有atk大小的攻击力.只有当你的攻击力大于这只怪物的防御力时,你才可以打败他,同时每打败只怪物,你会获得一定的攻击力加成.一个节点可能存在着不止一只怪兽,你要打败这个节点的所有怪物才能可以从这个节点通过,请问他能不…
Rescue Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 14   Accepted Submission(s) : 7 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description Angel was caught by the MOLIGPY…
坦克大战 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描写叙述 Many of us had played the game "Battle city" in our childhood, and some people (like me) even often play it on computer now.  What we are discussing is a simple edition of this game. Given a map that…
这道题目真是非常坎坷啊,WA了很多次,但所有的思路都是奔着广搜去想的,一开始出现了比答案大的数据,才想到了应该是优先队列,再说加上也肯定不会错.一开始我读错了题意,以为旋转并且前行需要的时间跟其他一样,但是旋转的动作是需要额外计时的.我的第一种方法错误原因还没有找到,我在旋转以后就直接改动了位置,感觉没有什么本质区别,旋转了以后,肯定要走啊,我直接加上时间也没什么问题,我也把所能想到的测试用例都试过了,与AC代码完全一致,真是搞不懂,这要是CF就好了.于是,学习了别人的代码,改了改我原先的地方,…
Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison. Angel's friends want to save Angel. Their task is: approa…
题目链接:http://poj.org/problem?id=2449 Time Limit: 4000MS Memory Limit: 65536K Description "Good man never makes girls wait or breaks an appointment!" said the mandarin duck father. Softly touching his little ducks' head, he told them a story. &quo…
题意:M行N列的矩阵.Y:起点,T:终点.S.R不能走,走B花费2,走E花费1.求Y到T的最短时间. 三种解法.♪(^∇^*) //解法一:暴力 //157MS #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> #include<string> #include<cmath> #include<queue> #include&…
Ivan's Car Time limit: 1.5 secondMemory limit: 64 MB The world is in danger! Awful earthquakes are detected all over the world. Houses are destroyed, rivers overflow the banks, it is almost impossible to move from one city to another. Some roads are…
看题传送门: ZOJ http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1649 HDU http://acm.hdu.edu.cn/showproblem.php?pid=1242 题目大意初始位置在r,要求到达a的地点,地图上"."通过需要1s,"x"代表守卫,通过耗时2s,"#"不能走. BFS的应用. BFS求最短路径的原理是每一次向外扩张一格,(就像树的层次遍历一样…
题意就是要求第K短的路的长度(S->T). 对于K短路,朴素想法是bfs,使用优先队列从源点s进行bfs,当第K次遍历到T的时候,就是K短路的长度. 但是这种方法效率太低,会扩展出很多状态,所以考虑用启发式搜索A*算法. 估价函数 = 当前值 + 当前位置到终点的距离,即F(p) = G(p) + H(p). G(p): 当前从S到p所走的路径距离 H(p): 当前点p到终点T的最短路径距离   ---可以先将整个图边方向取反然后以T为源点求个最短路,用SPFA提速 F(p): 从S按照当前路径…
阿里面试总结: 一遍一遍地刷阿里网站,今天发现“面试中”变成“待跟进offer”了,写个面经攒人品,希望offer通知邮件早点来吧. 我当时投简历时投了C/C++工程师,其实也没经过啥考虑,因为我一开始是把重点放在进网易游戏或者腾讯游戏部门,投阿里就纯粹出于增加点面试经验,随便找了个C/C++工程师岗位就找人内推了(后转为算法工程师). 一面(3月16日):电话打来时手机显示北京电话,还以为是诈骗的(囧...).听声音,这位阿里面试官大概是三十多岁,有点资历的人吧.一开始让我介绍项目,然后我就把…
Power Hungry Cows(POJ 1945) Description FJ的奶牛想要快速计算整数P的幂 (1 <= P <=20,000),它们需要你的帮助.因为计算极大数的幂,所以它们同一时间仅能使用2个存储器,每个存储器可记录某个结果值. 第一件工作是初始化存储器内的值一个为底数x, 另一个为1. 奶牛可以相乘或相除2个存储器中的值,并把结果存在其中某个存储器内,但所有存储的结果必须是整数. 例如, 如果他们想计算x^31, 一种计算方法是: WV1 WV2 开始: x 1 存储…
Codeforces Round #485 (Div. 2) D. Fair 题目连接: http://codeforces.com/contest/987/problem/D Description Some company is going to hold a fair in Byteland. There are $n$ towns in Byteland and $m$ two-way roads between towns. Of course, you can reach any t…
题目链接:https://vijos.org/p/1360 优先队列BFS: 这个八数码问题本身其实是之前人工智能实验课的作业…… 首先,如果不带估价函数,直接用优先队列BFS,肯定也是能得到正确结果的,至于用时怎么样,可以看评测结果…… 代码: #include<bits/stdc++.h> using namespace std; ]={,,,-}; ]={,-,,}; "; struct Node { int dist; int x,y; string mp; #define…
题意:N个点M条边的无向图,每条边都有属于自己的编号,如果一条路径上的边编号都相同,那么花费仅为1:改变至不同编号的路径,花费加1,无论这个编号之前是否走过. 分析:记录每个点的最小花费,再用set维护这个最小花费对应的前驱边的编号,可能有多个不同的前驱编号.如果当前状态可以更新点最小花费,那么将set清空并加入前驱编号:如果与最小花费相等且前驱的编号不在集合中,那么将前驱的状态加入集合中. *BFS要用优先队列,否则会错. #include<bits/stdc++.h> using name…
并查集算连通块的数量,集合的个数就是必然不开心的人数,再跑bfs,用优先队列维护~ #include<bits/stdc++.h> using namespace std; ; vector<int> g[maxn]; int father[maxn]; int N,M,T; int isRoot[maxn]; int visit[maxn]; int findfather (int x) { int a=x; while (x!=father[x]) x=father[x]; w…
第三单元是大闸蟹体验及其差的一单元,鬼知道从一开始的自信慢慢到最后的自暴自弃我都经历了什么,我已经感觉到分数与gpa与头发都在渐渐和我说再见了 JML基础梳理及工具链 JML(Java Modeling Language)是用于对Java程序进行规格化设计的一种表示语言.其旨在无需了解方法等的内部实现,而告诉读者方法等需要的前提条件以及运行后的结果等,这对于构建测试.维护代码.以及协作编程都都有极其重要的作用. JML以javadoc注释的方式来表示规格,每行都以@起头.有两种注释方式,行注释和…
Waiting ten thousand years for Love Time Limit: 10000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1057    Accepted Submission(s): 335 Problem Description It was ten thousand years, after Demon Lemon caught Y…
Rescue Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 27406    Accepted Submission(s): 9711 Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is d…
Ignatius and the Princess I Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 13911    Accepted Submission(s): 4370 Special Judge Problem Description The Princess has been abducted by the BEelzeb…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2822 题目大意:X消耗0,.消耗1, 求起点到终点最短消耗 解题思路: 每层BFS的结点,优先级不同,应该先搜cost小的.直接退化为最短路问题. 优先队列优化. 卡输入姿势.如果O(n^2)逐个读的话会T掉.要用字符串读一行. #include "cstdio" #include "queue" #include "cstring" using…
Rescue http://acm.hdu.edu.cn/showproblem.php?pid=1242 题意:"#"是墙,"."是路,"a"是要被救的人,"r"是救援者,"x"是guard.每移动一步,需要一个单位时间.杀死guard也需要一个单位时间.求r到a的最短时间. 第一次听说优先队列,不得不承认我还是太弱了!!! #include <stdio.h> #include <st…
采用优先队列做BFS搜索,d[][]数组记录当前点到源点的距离,每次出队时选此时eng最小的出队,能保证最先到达的是eng最小的.而且后来用普通队列试了一下,超时..所以,能用优先队列的,就要用优先队列. 代码: #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <queue>…
给你n个物品交换,每个交换用r,v,t描述,代表需要用r元的东西花费t时间交换得v元的东西.一开始只有1元的东西,让你求出交换到价值至少为m的最少时间代价.相当于每个交换是一条边,时间为边权,求走到价值大于等于m的点的最短路径.bfs的时候,用优先队列来储存状态,每次取出花费总时间最小的状态. #include<cstdio> #include<queue> #include<algorithm> #include<vector> #define ll lo…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2653 题目大意:迷宫中有普通点和陷阱.其中普通点可以走可以飞,但是陷阱只能飞.走耗时1,飞耗时2.但是飞耗能1.给定一定能量P,问是否能在T秒内走出. 解题思路: 一开始SB似地认为每个点最多访问两次.其实每个点最多可以访问P次. vis[X][Y][P]表示在(x,y)点能量为P的状态. 容易出错的地方在于这个组合: @. ,虽说是飞吧,但是还是会在陷阱上卡1s,尽管下一个点是. ,但是这种情况…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1242 题目大意:多个起点到一个终点,普通点耗时1,特殊点耗时2,求到达终点的最少耗时. 解题思路: 如果没有特殊点,就是普通BFS. 由于特殊点的介入,所以BFS树的同一深度,各个点的值可能不同.所以使用优先队列,先取出值小的搜. 搜到的第一个符合条件的结果肯定是最小的,break. 注意有多个起点,所以先记录下所有起点,依次BFS找最小. #include "cstdio" #incl…
Charitable Exchange Time Limit: 4000/2000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit Status Have you ever heard a star charity show called Charitable Exchange? In this show, a famous star starts with a small item which value…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1548 There is a strange lift.The lift can stop can at every floor as you want, and there is a number Ki(0 <= Ki <= N) on every floor.The lift have just two buttons: up and down.When you at floor i,if yo…