ural (timus)
文章平均质量分 63
PegasusWang_
知乎 Python 后端工程师:
https://www.zhihu.com/people/pegasus-wang/activities
Python web 入坑指南作者:http://python-web-guide.readthedocs.io/zh/latest/
展开
-
ural 1102 Strange Dialog
http://www.cnblogs.com/zhanglanyun/archive/2012/02/16/2354686.html(转自 蝴蝶断翅膀)Time Limit: 1.0 second Memory Limit: 16 MBOne entity named "one" tells with his friend "puton" and their conversation is原创 2013-06-19 19:26:17 · 1096 阅读 · 0 评论 -
ural 1794. Masterpieces of World Architecture
链接:http://acm.timus.ru/problem.aspx?space=1&num=1794描述:一个班上有n个人要发言,他们排成一个圈并且按照顺时针顺序一个一个依次演讲,有一些学生想要先发言,而有一些学生想要后发言。现在告诉你每个人想第几发言,问谁第一发言最好,能尽量更多满足每个人的要求(即满足他想要的发言次序)。要有多种答案,输出其中一个。input: n个学生和第 i 个原创 2013-08-27 20:07:32 · 1412 阅读 · 0 评论 -
ural 1837. Isenbaev's Number bfs
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1837描述: Isenbaev是国外的一个大牛。现在有许多人要参加ACM ICPC。一共有n个组,每组3个人。同组的3个人都是队友。大家都想知道自己与大牛的最小距离是多少。大牛与自己的最小距离当然是0。大牛的队友和大牛的最小距离是1。大牛的队友的队友和大原创 2013-09-03 19:25:20 · 1727 阅读 · 0 评论 -
ural 1869. New Year Cruise
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1869描述:从Vladivostok站Moscow站共有n个站台,Vladivostok记为1,Moscow记为n,火车来回往返。现在给出从车站i到车站j和j到i的买票人数,计算需要的最少节车厢。思路:水题,模拟即可。注意先下后上,用一个max保持最大的人数。代码://g++ 4.原创 2013-08-31 11:30:03 · 1386 阅读 · 0 评论 -
1260. Nudnik Photographer dp
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1260描述:说白了就是1,2,3,,,,,,n.排成一排,第一个数必须是1,且相邻的两个数差的绝对值 思路:一开始没想出来,就用dfs写了一个程序求前面几十个(大概n=30左右时间就不能忍受了)#include #include #include int a[60], ans原创 2013-09-02 16:12:32 · 1152 阅读 · 0 评论 -
ural 1073. Square Country
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1073描述:买一块边长为 a 的正方形地需要的钱数是 a^2, 现在输入N为钱数,为了交税方便,求最少购买地的块数。思路:有三种方法可以解决。1:完全背包问题。一个背包容量为N,每个物品的花费为 i * i, (1 f[i]表示 i 最少由几个平方数组成,f[i] = mi原创 2013-09-03 11:10:09 · 1139 阅读 · 0 评论 -
ural 1106. Two Teams 二分图染色
链接:http://acm.timus.ru/problem.aspx?space=1&num=1106描述:有n(n思路:大意就是求一个子图使其是二分图。直接用dfs染色。 实际上不是二分图,因为本题每个子集里边可以有边相连,只要满足题目给的条件就行了。比二分图简单了一些。#include #include #include #include using namespac原创 2013-10-07 17:57:38 · 1790 阅读 · 0 评论 -
关于ural OJ的几点说明(技巧)
最近做题发现ural的oj和国内的hdoj差别还是挺大的除了每个oj的说明之外,ural的oj还有几个特点。1:对输出格式的限制非常宽松这一点和杭电的差别很大,杭电oj有着严格的输出格式控制,但是ural的oj我发现最后多一个空格或者换行符也完全没有问题。杭电的经常碰见输出一组数据,前面都是两个数据之间都是空格,最后一个没有空格,所以最后一个就要单独输出。但是ural的可以将所有数据用一样原创 2013-08-23 16:06:55 · 2571 阅读 · 0 评论 -
面试题:把数组中的数分为两组,使得两组和相差最小 timus 1005. Stone Pile
面试题:数组中的数分为两组,使得两组和相差最小 timus 1005. Stone Pile原创 2014-05-06 08:19:31 · 18231 阅读 · 4 评论 -
timus 2031. Overturned Numbers
#include int main(){ int n; while (scanf("%d", &n) != EOF) { if (n == 1) { printf("01\n"); } else if (n == 2) { printf("11 01\n"); } else if (原创 2014-12-08 18:35:12 · 1333 阅读 · 0 评论 -
timus 2002. Test Task
#include #include #include using namespace std;class Person { public: Person(string name, string password) : name(name), password(password) { } bool operator < (const Person&原创 2014-12-08 18:31:06 · 952 阅读 · 0 评论 -
timus 1993. This cheeseburger you don't need
#include #include #include #include using namespace std;void solve(const string &s, bool flag) { int objL, objR, subL, subR, verL, verR; objL = s.find('{'), objR = s.find('}'); subL = s.find原创 2014-12-09 22:00:15 · 941 阅读 · 0 评论 -
timus 2025. Line Fighting
#include int main(){ int N, K, T; while (scanf("%d", &T) != EOF) { while (T--) { scanf("%d %d", &N, &K); int k[K+1]; int num1 = N / K, num2 = N % K; for (int i = 1; i <= K; ++i) {原创 2014-12-08 21:17:22 · 1327 阅读 · 0 评论 -
ural 1009. K-based Numbers 1012. K-based Numbers. Version 2 1012. K-based Numbers. Version 3
描述:求n位k进制数没有两个相邻0的数的个数。(没有前导0)一个入门的动态规划题目,在此不多说怎么做了。三个题目只有一个N+K的范围不同而已,用这三个题目只是为了演示一下c++大数模板的使用,三个题目都可以用这一个代码就能AC。比每次头疼的自己写大数方便多了。g++ 4.7.2 提交#include #include #include #include #include原创 2013-08-28 18:35:03 · 1072 阅读 · 0 评论 -
ural 1917. Titan Ruins: Deadly Accuracy(Titan Ruins系列)
还是水题一道,直接模拟。代码写的有点乱。这是翻译:http://www.nocow.cn/index.php/Translate:URAL/1917间限制:1秒空间限制:64MB你去一个洞窟内探险,洞窟内有许多宝石,但都有魔法守护,你需要用魔法将它们打下来。每个宝石都有自己的防御等级,当你的魔法超过它的防御等级时它就会被你打下来。但是,当它被你打下来的时候,它会反弹你的魔法。如原创 2013-06-19 19:27:18 · 1838 阅读 · 4 评论 -
ural 1136. Parliament 二叉树构造和遍历
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1136题目描述:给定一个按照(左子树-右子树-根)(即先序)遍历序列的树,求其按照 右子树-左子树-根 遍历的结果。(每个数都不同)题目思路:按照题目意思其实构造的是一个二叉查找树,满足左子树元素都不大于当前根的元素,右子树元素都不小于当前根的元素。而且二叉查找树按照 中序遍历 的结果原创 2013-08-22 12:33:02 · 1364 阅读 · 0 评论 -
ural 1306. Sequence Median(优先级队列 priority_queue用法)
最近做的ural的题目总是各种错,看了解题报告都是自己没学过的玩意,有点受打击,不过ural的题目质量还是挺好的,多被虐虐有益健康。这一题要是用数组直接超内存,用优先级队列做,刚接触这个,学习一下优先级队列。c++stl头文件声明, 包括queue和priority_queue, priority_queue就是优先级队列。默认使用vector容器实现。优先级队列容器总是把优先级最高的元素原创 2013-06-19 19:26:24 · 894 阅读 · 0 评论 -
1119. Metro(动态规划,滚动数组)
题意:输入首行为N,M (0 求Nikanor的家到地铁站的最短路径,四舍五入到整数米。用动态规划:设f[i][j]是出发点到点a[i][j]的最短路径f[i][j] = min(f[i-1][j], f[i][j-1]) + 100 //不能从a[i-1][j-1]到a[i][j]f[i][j] = min(f[i-1][j]+100, f[i][j-1]+100,原创 2013-06-19 19:26:33 · 1026 阅读 · 0 评论 -
ural 1613. For Fans of Statistics
一开始用sort+binary_search,结果还是超时了,后来看到用lower_bound做。首先用map >,对每一个出现的数字用vector记录出现位置,最后查找时如果位置不在vector里说明没有,若有相交的区间,说明有这个数。iterator lower_bound(beg, end, val):返回一个迭代器,它引用[beg, end)范围最低的位置,要求[beg, end)按照原创 2013-06-19 19:26:38 · 1238 阅读 · 0 评论 -
ural 1821. Biathlon
非常蛋疼的水题,基本上就是在考英文理解能力,题意灰常不好懂,看了讨论居然有英语国家的人也没理解题意,看来也不完全是本人英语理解能力不好。搬上来翻译(来自刘树嘉):冬天了一群小朋友在玩滑雪射击比赛。他们任意两个人出发的时间相差30秒。每个小朋友的到达时间与出发时间之差称为这位小朋友的比赛成绩。小朋友到达瞬间的比赛成绩比之前其他完成比赛的小朋友的比赛成绩都要好(时间短),则称该小朋友暂时领先。原创 2013-06-19 19:26:42 · 989 阅读 · 0 评论 -
ural 1033. Labyrinth(dfs)
题目链接http://acm.timus.ru/problem.aspx?space=1&num=1033唯一注意的就是当图不连通时两个角都要搜索,搜索的总和才是最终答案。#include #include #include int n, num;char map[34][34];bool visited[34][34] = {0};int dir[4][2]原创 2013-06-19 19:26:53 · 947 阅读 · 0 评论 -
ural 1024. Permutations
一开始直接模拟,果断超时了,后来上网查了查,是组合数学中的置换群。 本题求经过多少次置换P能变成初始状态。 对于任意一个[1,n]的数字,经过多次置换后一定可以变会初始状态, 而且置换的次数不会超过n。对于第i个数,模拟计算出其置换周期,记为ai,答案就是所有ai的最小公倍数。 1 2 3 4 5 4 1 5 2 3次数:3 3 2 3 2,最小公倍原创 2013-06-19 19:27:00 · 1042 阅读 · 0 评论 -
ural 1910. Titan Ruins: Hidden Entrance(Titan Ruins系列题目)
这是Titan Ruins系列第一道题,以后慢慢更新。赤裸裸滴阅读理解题,大意就是找到三个连在一起的数,使其之和最大,输出的第一个数是这三个数的和,第二个数是中间那个数所在的位置。水题一道,很简单。 1 #include 2 #include 3 using namespace std; 4 int main() 5 { 6 int n; 7原创 2013-06-19 19:27:14 · 1155 阅读 · 0 评论 -
ural 1915. Titan Ruins: Reconstruction of Bygones
翻译:时间限制:1秒空间限制: 64MB对一个栈进行一些操作。详见下。输入:第一行一个整数N,操作总数。接下来N行每行一个操作。若数大于0,代表将该数压栈。 若数等于-1,代表输出并抛弃栈顶元素。若为0,代表将目前栈内所有元素重新压栈。(就是复制一份栈)输出:每个-1操作时的栈顶元素。样例输入:8340-1-1-1-11样原创 2013-06-19 19:27:20 · 1169 阅读 · 0 评论 -
Timus 1017. The Staircases(转)
Timus 1017. The Staircases 要求计算给定数目的砖块可以组成多少种不同的楼梯。1017. The StaircasesTime Limit: 1.0 secondMemory Limit: 16 MBOne curious child has a set of N little bricks (5 ≤ N ≤ 500). From these bricks he原创 2013-06-19 19:29:07 · 1214 阅读 · 0 评论 -
1126. Magnetic Storms(单调队列)
一开始扫描数组,时间复杂度O(n),然后找最大值用max_element,时间复杂度O(mlogm),总的时间复杂度O(nmlogm),直接TLE2,后来上网查到要用线段树或者单调队列才能过,学一下单调队列。http://wenku.baidu.com/view/f88397a50029bd64783e2c5c.html一个挺好的单调队列的课件,有助于理解。单调对列:单调队列是特殊的双端队原创 2013-06-19 19:26:10 · 898 阅读 · 0 评论 -
ural 1022. Genealogical Tree 拓扑排序
链接:http://acm.timus.ru/problem.aspx?space=1&num=1022描述:火星人的总谱图很乱,导致发言时难以确定顺序。为了不引起scandal,规定所有后代必须在祖先之后发言。输入N,1 输出任意一个满足的顺序。思路:直接将给定的图拓扑排序即可。一篇介绍拓扑排序的好文章:http://blog.csdn.net/pegasuswang原创 2013-08-23 16:31:06 · 1350 阅读 · 0 评论 -
1931. Excellent Team (水题)
题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1931题目描述:Jack要选一个最好的海盗。让n个人站成一排,一开始选定第一个人作为mate,然后顺着这一排排人一个一个往前走,如果遇到一个人的缺陷数比当前所选mate少(即做了一次比较),就选定这个更少的人作为mate。求最比较次数最多的人的编号。思路:直接模拟就可,比较水,只有一点要注原创 2013-08-25 22:30:32 · 909 阅读 · 0 评论 -
timus 2000. Grand Theft Array V
#include #include //for accumulate#include using namespace std;inline bool isEven(int a) { return !(a & 1); }int main() { int n; int pos1, pos2; while (scanf("%d", &n) != EOF)原创 2014-12-08 18:27:10 · 1070 阅读 · 0 评论