
Timus
lzh823046544
233
展开
-
Timus 1327. Fuses
原题:1327题意:读入n,m 问n到m中有多少个计数解:直接循环判断#include <iostream>using namespace std;int main() { int n, m, sum = 0; cin >> n >> m; for (int i = n; i <= m; i++) sum += i%2; cout << sum <原创 2016-04-26 22:29:33 · 213 阅读 · 0 评论 -
Timus 1297. Palindrome
题目:Palindrome题意:给出一段字符串,求其字串中的最长的回文串、解法:枚举回文串的中间点,再往两边搜索,时间为O(n^2)#include <iostream>#include <string>using namespace std;char s[2000];int n = 0;int main() { char c; while ((c = getchar()) !=原创 2016-04-20 13:29:24 · 225 阅读 · 0 评论 -
Timus 1118. Nontrivial Numbers
原题 : Nontrivial Numbers题意:读入l,r, 从[l,r]之间找出一个数,使得这个数的因数的和除以这个数所得的值最小解法:直接搜索#include <iostream>using namespace std;#include <math.h>int l, r;int main() { cin >> l >> r; if (l == 1) { p原创 2016-04-20 13:44:03 · 379 阅读 · 0 评论 -
Timus 1119. Metro
原题:Metro题意:给出N*M网格,其中一些对角点有边相连,问从(0,0)到(N,M)的最短路径为多长解法:记忆化搜索,记录到每一个点的最短距离#include <iostream>using namespace std;#include <stdlib.h>#include <math.h>#include <stdio.h>double a[1005][1005];int n, m,原创 2016-04-20 13:49:14 · 360 阅读 · 0 评论 -
Timus 1885 Passenger Comfort
原题:Passenger Comfort题意:飞机要在t秒内到达高度h,飞机最大速度为v,若速度超过x时乘客会感到不适,问乘客感到不适的最长和最短时间直接数学求解#include <iostream>using namespace std;#include <stdio.h>int main() { int h, t, v, x; cin >> h >> t >> v >> x;原创 2016-06-30 18:03:19 · 357 阅读 · 0 评论 -
Timus 1892 Morning in Koltsovo
原题:Morning in Koltsovo 题意:给出n台要起飞的飞机及m台要降落的飞机,并给出他们起飞(降落)的时间,其中若一台飞机起飞,那么随后过t1秒后才允许下一台飞机起飞,或者过t2秒后允许下一台飞机降落;若一台飞机降落,那么随后过t3秒后才允许下一台飞机起飞,或过t4秒后允许下一台飞机降落。其中,若同一时间有飞机要起飞、降落,那么降落的飞机优先 解法:直接模拟。注意!其中若飞机 a原创 2016-06-30 18:12:30 · 261 阅读 · 0 评论 -
Timus 1893 A380
原题:A380 题意:给出飞机座位的排布方式,给出飞机的座位,输出是否靠窗或走廊直接模拟即可#include <iostream>using namespace std;#include <string>int main() { string s; cin >> s; int n = 0; char c; for (int i = 0; i < s.si原创 2016-06-30 18:17:17 · 270 阅读 · 0 评论 -
Timus 1888. Pilot Work Experience
原题:Pilot Work Experience 题意:有n次航班以及p个飞行员,每一个飞行员有一个经验值,每个航班需要两名飞行员,且每一次航班的两名飞行员的经验值相差只能为1.读入n次航班的两名飞行员序号,问是否有解。若无解输出-1.若有解,则输出任意两名飞行员经验可能相差的最大值,再把每一位飞行员的经验值输出,如有多解,输出任意一种。解法:这题有几个坑要注意一下,如果有解,那么要输出的所有飞行原创 2016-07-01 09:40:46 · 447 阅读 · 0 评论 -
Timus 1889. Airport Announcements
原题:1889. Airport Announcements 题意:给出n种语言(包含unknown),问其中可能包含多少种语言,要求每一种语言连续且数量相等 解法:直接暴力搜索模拟#include <iostream> #include <string.h> #include <string> using namespace std; string str[1002], s[10原创 2016-07-08 16:53:25 · 250 阅读 · 0 评论 -
Timus 1295. Crazy Notions
原题:Crazy Notions题目:读入N,求1^n+2^n+3^n+4^n结尾有多少个0解法:1.暴力算出来,发现其实0的个数不会超过2 2.找规律,0,1,1,2,0,2,1,2,0,1,1,2,0,1,1,2,0,1,1,2 循环。#include <iostream>using namespace std;const int mo = 10000;int a, b, c,原创 2016-04-20 13:23:31 · 217 阅读 · 0 评论 -
Timus 1293. Eniya
原题:Eniya解法:题目太水了,读入a,b,c,输出a*b*c*2原创 2016-04-20 13:03:10 · 545 阅读 · 0 评论 -
Timus 1292 Mars Space Stations
原题:Mars Space Stations题意:给出T组数据,每次读入N,K,L,主角在第N-1和第N个星球之间,距离第N-1个星球L km,要求到达第N个星球,其中第一个星球与第二个星球的距离为K,第二个与第三个之间的距离为F(k),第三个与第四个之间的距离为F(F(K)),一次类推,问要走多远。其中F(K)表示K的各个位数的立方和,如 F(12) = 1^3 + 2^3 = 9。解法:直接暴力原创 2016-04-20 13:00:13 · 276 阅读 · 0 评论 -
Timus 1329. Galactic History
原题:1329题意:给出一棵n个节点的树,问m对节点的从属关系解法:因为n较大,若对于每一个子问题都进行一次搜索并定会超时。其实只要进行一次dfs,记录每一个节点出现的初始时间和结束时间,这样就可以保证每一个节点出现的时间必定比其下方的节点出现时间早,结束时间晚。~~(这种方法亦可以求最近公共祖先)代码实现我应用的是模拟指针…#include <iostream>using namespace s原创 2016-04-26 22:37:00 · 300 阅读 · 0 评论 -
Timus 1330. Intervals
原题:1330题意:给出n个数,m个问题(x, y),求第x到第y个数的和解法:前缀和#include <iostream>using namespace std;int a[20000] = {0}, n, m;int main() { cin >> n; for (int i = 1; i <= n; i++) { int x; cin >> x原创 2016-04-26 22:39:13 · 264 阅读 · 0 评论 -
Timus 1332. Genie Bomber
原题:1332题意:给出n个半径为r的城市(圆),一个爆炸半径为R的炸弹,若炸弹爆炸时把整个城市覆盖,那么就认定为毁灭了这个城市,问最多毁灭多少个城市。解:首先使得 R=R-r , 那么炸弹只要覆盖圆心就可以毁灭这个城市(注意R<0)的情况。然后利用每两个城市来确定两个半径为R的圆,再扫描爆炸的覆盖点即可#include <iostream>using namespace std;#includ原创 2016-04-26 22:51:38 · 346 阅读 · 0 评论 -
Timus 1333. Genie Bomber 2
原题:1333题意:对于一个1*1的方格,其中包含n个给出圆心和半径的圆,问这些圆的覆盖面积所占比例解:因为题目允许的误差较大,将1*1的方格离散化,再对每一个点进行扫描。#include <iostream>using namespace std;#include <math.h>double a[20][5], ans = 0;int n;double sqr(double x) {原创 2016-04-26 22:55:03 · 245 阅读 · 0 评论 -
Timus 1335. White Thesis
原题:1335题意:给出N, 求A, B, C,N^2 ≤ A, B, C ≤ (N+1)^2, 使得(A^2 + B^2)可以被C整除解法:如下…自己体会#include <iostream>using namespace std;int main(){ long long n; cin >> n; cout << n*n << endl << n << endl;原创 2016-04-26 22:58:14 · 202 阅读 · 0 评论 -
Timus 1336. Problem of Ben Betsalel
原题:1336题意:读入n,求m,k满足方程 m^2 = k^3*n,要求1 ≤ m, k ≤ 10^100解:仔细想一想就好…#include <iostream>using namespace std;int main(){ long long n; cin >> n; cout << n*n << endl << n << endl; return 0;}原创 2016-04-26 23:06:46 · 271 阅读 · 0 评论 -
Timus 1837 Isenbaev's Number
原题:Isenbaev’s Number题意:读入n,接下来n行每行读入三个字符串代表一个小组,每个人都想知道自己与Isenbaev的关系有多近。即Isenbaev为0,Isenbaev的组员为1,Isenbaev的组员的组员为2,以此类推…没有关系的输出undefined解:这只是简单的图论题目,以Isenbaev为原点进行bfs即可,建议使用map和set#include <iostream>原创 2016-05-10 12:41:52 · 289 阅读 · 0 评论 -
Timus 1291 Gear-wheels
题目:Gear-wheels题意:读入N ((1 ≤ N ≤ 1000) 表示有N个齿轮,随后N行,每一行读入Ki, 表示第N个齿轮的数目,随后读入若干个数(0结束),表示第 i 个齿轮与其相接。最后一行读入M、V,表示第M个齿轮与发动机相连通,发动机转速为V,求所有齿轮的速度。解法:直接暴力地从M开始搜索,通过M来计算其他齿轮的转速,注意如果是0,要输出“0/1”#include <iostrea原创 2016-04-20 12:49:48 · 836 阅读 · 0 评论 -
Ural 1209
链接:ural 1209题意:有一个形如110100100010000…的字符串,给出N(1 ≤ N ≤ 65535)组问题,每一组读入Ki (1 ≤ Ki ≤ 2^31 − 1), 要求输出字符串的第Ki位数字为多少。思路:这是一道比较裸的二分题目,利用数列的知识,计算Ki属于10^m中,即(1+2+…+m) >= Ki , 而(1+2+…+(m-1)) < Ki即可,若Ki=1时进行特殊判断。代原创 2016-04-19 17:51:51 · 310 阅读 · 0 评论