[hackerrank]Manasa and Stones】的更多相关文章

https://www.hackerrank.com/contests/w2/challenges/manasa-and-stones 简单题. #include<iostream> using namespace std; int main() { int T; cin >> T; while (T--) { int n, a, b; cin >> n >> a >> b; // a < b if ( a > b) { int tm…
Change language : Manasa 和 她的朋友出去徒步旅行.她发现一条小河里边顺序排列着带有数值的石头.她开始沿河而走,发现相邻两个石头上的数值增加 a 或者 b. 这条小河的尽头有一个宝藏,如果Manasa能够猜出来最后一颗石头上的数值,那么宝藏就是她的.假设第一个石头的上数值为0,找出最后一个石头的可能的所有数值. 输入格式 第一行包含整数 T, 代表测试数据的组数. 每组数组包含三行: 第一行包含 n,代表石头的个数 第二行包含 a 第三行包含 b 输出格式 升序输出最后一…
Intuitive one to learn about Grundy basic :) Now every pile becomes a game, so we need to use Sprague-Grundy Theory. Calculation is quite intuitive - and if you print them out, you will find these Grundy numbers loops by 9. def firstMissing(s): ret =…
from __future__ import print_function def main(): t = int(raw_input()) for _ in range(t): n = int(raw_input()) a = int(raw_input()) b = int(raw_input()) possible_value = [] for _ in range(n): temp_value = (_ * a + (n - 1 - _) * b) # 抽象化理解题目的意思 if tem…
Gem Stones John has discovered various rocks. Each rock is composed of various elements, and each element is represented by a lowercase latin letter from 'a' to 'z'. An element can be present multiple times in a rock. An element is called a 'gem-elem…
这是 meelo 原创的 IEEEXtreme极限编程大赛题解 Xtreme 10.0 - Game of Stones 题目来源 第10届IEEE极限编程大赛 https://www.hackerrank.com/contests/ieeextreme-challenges/challenges/game-of-stones-1-1 Alice and Bob play a game. The game is turn based: Alice moves first, then Bob, a…
题目传送门:https://www.hackerrank.com/challenges/unique-colors 感谢hzq大神找来的这道题. 考虑点分治(毕竟是路经统计),对于每一个颜色,它的贡献是独立的.我们可以在一次点分治中合在一块处理(为什么时间复杂度是对的呢,因为我们每次改动只会根据当前点的颜色进行变动,而不是所有颜色对着它都来一遍).每次先对重心单独计算答案贡献,此时也将当前区域的各个答案贡献计算出来,并以此为基础(之后称之为基准贡献,即代码中的tot).对于每一棵子树,我们先df…
Firt thought: an variation to LCS problem - but this one has many tricky detail. I learnt the solution from this link:https://github.com/wangyongliang/Algorithm/blob/master/hackerrank/Strings/Square%20Subsequences/main.cc And here is his code with my…
It is about how to choose btw. BFS and DFS. My init thought was to DFS - TLE\MLE. And its editorial gives a very neat BFS based idea which costs much less memory. https://www.hackerrank.com/challenges/beautiful-path/editorial…
It is marked as a NPC problem. However from the #1 code submission (https://www.hackerrank.com/CharlesOfria), it looks pretty much like a Brutal-Force (or simulation) based solution, mixed with some greedy strategies. To me the other NPC "Queens Revi…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5973 Game of Taking Stones Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others) 问题描述 Two people face two piles of stones and make a game. They take turns to take stones. As ga…
传送门 今天在HackerRank上翻到一道高精度题,于是乎就写了个高精度的模板,说是模板其实就只有乘法而已. Extra long factorials Authored by vatsalchanana on Jun 16 2015 Problem Statement You are given an integer N. Print the factorial of this number. N!=N×(N−1)×(N−2)×⋯×3×2×1 Note: Factorials of N>20…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4573 Problem Description Remember our childhood? A few naked children throw stones standing on the same position, the one throws farther win the game. Aha, of course, there are some naughty boys who care…
Great learning for me:https://www.hackerrank.com/rest/contests/master/challenges/lucky-numbers/hackers/turuthok/download_solution Basically it is memorized search application. And we follow a discrete strategy: split it into digits and go digit by di…
This is 'Difficult' - I worked out it within 45mins, and unlocked HackerRank Algorithm Level 80 yeah! So the idea is straight forward: 1. sort the input array and calculate partial_sum()2. find the negative\positive boundary with the accumulated give…
A sly knapsack problem in disguise! Thanks to https://github.com/bhajunsingh/programming-challanges/tree/master/hackerrank/algorithms/the-indian-jobLesson learnt: The Italian\Indian job is two-way 01 Knapsack. And some complext problem can be convert…
The most interesting, flexible and juicy binary tree problem I have ever seen. I learnt it from here: https://codepair.hackerrank.com/paper/5fIoGg74?b=eyJyb2xlIjoiY2FuZGlkYXRlIiwibmFtZSI6IkJsdWVCaXJkMjI0IiwiZW1haWwiOiJoZWFsdGh5dG9ueUBnbWFpbC5jb20ifQ%…
Something to learn: Rotation ops in AVL tree does not require recursion. https://github.com/andreimaximov/hacker-rank/blob/master/data-structures/tree/self-balancing-tree/main.cpp node *create_node(int val) { node *pNew = new node; pNew->val = val; p…
Soma is a fashionable girl. She absolutely loves shiny stones that she can put on as jewellery accessories. She has been collecting stones since her childhood - now she has become really good with identifying which ones are fake and which ones are no…
https://www.hackerrank.com/contests/w9/challenges/lexicographic-steps 这题还是折腾很久的.题目意思相当于,比如有两个1两个0,那么找组成的数里第k大的.想法就是,如上例,假如K为4,那么先看后两位够了么C(2,2)=1,不够,那么看后三位C(3,2)=3,也不够,后四位是C(4,2)=6,够了,那么第一个1在倒数第4位.然后减去C(3,2)继续做. #include <iostream> #include <vecto…
https://www.hackerrank.com/contests/infinitum-aug14/challenges/jim-beam 学习了线段相交的判断法.首先是叉乘,叉乘的几何意义是有向的平行四边形的面积(除以2就是三角形的面积).如果ABD和ABC正负相反,说明C和D在AB两侧,同样的,再判断A和B是否在CD两侧即可.当某三角形面积为0时,需要判断是否在线段上. #include <iostream> using namespace std; typedef long long…
https://www.hackerrank.com/challenges/service-lane 用RMQ做的,其实暴力也能过~ #include <iostream> #include <vector> #include <cmath> using namespace std; int main() { int n, t; cin >> n >> t; vector<int> vec(n); for (int i = 0; i…
https://www.hackerrank.com/contests/w1/challenges/volleyball-match 此题不错,首先可以看出是DP,S(x, y)= S(x - 1, y) + S(x, y - 1).然后比赛结束状态需要认真判断.三来,最后数据量很大(接近10^9)远超一般DP的数据量,分配数组都不行,里面是有规律的.下面是大数据失败的代码: #include <vector> #include <iostream> #include <cs…
https://www.hackerrank.com/contests/w1/challenges/maximizing-xor/ 找了半天规律,答案竟然是暴力,伤感.我找到的方法是利用规律2^x XOR 2^x - 1会最大,感觉稍微效率高点. int maxXor(int l, int r) { if (l == r) return 0; int p = 1; for (int i = 0; i <= 10; i++) { if (p * 2 > r) break; p *= 2; } i…
https://www.hackerrank.com/contests/w2/challenges/cut-the-tree 树分成两部分,求两部分差最小.一开始想多了,后来其实求一下总和,求一下分部的和就行了. #include <cstdlib> #include <climits> #include <algorithm> #include <iostream> #include <vector> using namespace std;…
https://www.hackerrank.com/contests/w3/challenges/sam-and-substrings DP.注意到以N[i]结尾的每个字符串的子数字和有规律: 53125 | 3 53 | 1 31 531 | 2 12 312 5312 sd[2] = 1 + 31 + 531 = 563sd[3] = 2 + 12 + 312 + 5312sd[3] = 2 + 10 + 2 + 310 + 2 + 5310 + 2sd[3] = 4 * 2 + 10 *…
https://www.hackerrank.com/contests/w3/challenges/the-love-letter-mystery 简单题. #include <cstdlib> #include <string> #include <iostream> using namespace std; int main() { int N; cin >> N; while (N--) { string s; cin >> s; int…
https://www.hackerrank.com/contests/w4/challenges/crush 第一眼觉得要用线段树,但据说会超时.其实这个可以通过生成pair排序来做. #include <vector> #include <cstdlib> #include <algorithm> #include <iostream> using namespace std; int main() { int N, M; cin >> N…
https://www.hackerrank.com/contests/w5/challenges/closest-number 简单题. #include <iostream> #include <cmath> using namespace std; int main() { int T; cin >> T; while (T--) { int a, b, x; cin >> a >> b >> x; if (b < 0 &…
https://www.hackerrank.com/contests/w5/challenges 简单题,注意整数的0次方是1,奇数. #include <iostream> #include <vector> using namespace std; int main() { int N; cin >> N; vector<int> A(N); for (int i = 0; i < N; i++) { cin >> A[i]; } i…