-------刷题--------
文章平均质量分 71
Tianweidadada
一颗执着的心,一个平庸的梦。
展开
-
习题 5-4 反片语(Ananagrams)UVa 156
题目大意:输入一些单词,找出满足如下规则的单词:该单词不能通过字母重排,得到输入文本中的另外一个单词。判断时候字母不区分大小写,但是输出时候应该保留输入时候的大小写,并且按照字典序进行排序(大写字母排在小写字母前面)。实现1:(用数组模拟)#include#include#include#include#include #define maxn 1000using name原创 2017-08-25 21:51:27 · 384 阅读 · 0 评论 -
习题 3 -9 子序列(All in All) UVa 10304
题目大意:输入两个字符串 s 和 t 判断 是否可以从 t 中删除0个或多个字符(其它字符顺序不变),得到字符串 s 。例如, abcde可以得到 bce 而不能得到 dc。Inputsequence subsequenceperson compressionVERDI vivaVittorioEmanueleReDiItaliacaseDoesMatter Ca原创 2017-08-20 17:15:01 · 328 阅读 · 0 评论 -
习题 4-2 Squares UVa 201
题目大意:n 行n列的小黑点,有m条线段连接其中的一些黑点,统计连成了个正方形(每种边长分别统计)。#include#include#define maxn 100int H[maxn][maxn], V[maxn][maxn];int main() { int n, m; int kcase = 0;// freopen("C:\\Users\\zhangwei\原创 2017-08-23 17:25:02 · 391 阅读 · 0 评论 -
例题 5-2 木块问题 (The Blocks Problem) UVa 101
题目:给你n个方块,有四种操作: 1.move a onto b,把a和b上面的方块都放回原来位置,然后把a放到b上面; 2.move a over b,把a上面的放回原处,然后把a放在b所在的方块堆的上面; 3.pile a onto b,把b上面的放回原来位置,然后把a和a上面的方块整体放到b上面;原创 2017-08-24 22:09:08 · 495 阅读 · 0 评论 -
蛇形填数
关于 前置 ++ 与 后置++ 的 用法原创 2017-08-16 20:14:46 · 258 阅读 · 0 评论 -
例题 4-5 追踪电子表格中的单元格(Spreadsheet Tracking) UVa 512
题意:有一个r行c列的电子表格,对其进行n个操作。操作类型分为5种:1. 删除行 2. 删除列 3. 插入行 4. 插入列 5. 交换两个元素位置输入初始查找位置,输出经过n个操作后,变更的位置Input7 95DR 2 1 5DC 4 3 6 7 9IC 1 3IR 2 2 4EX 1 2 6 544 85 57 86原创 2017-08-22 18:11:47 · 629 阅读 · 0 评论 -
UVa 455 周期串 (Periodic Strings)
开始 脑子进水了 以为 一个 没有循环字符的周期 是 1 就是没想到是 字符长度 呜呜~~~原创 2017-08-18 11:00:18 · 291 阅读 · 0 评论 -
UVa 1225 分子量 (Molar Mass)ACM
分子量原创 2017-08-17 21:53:16 · 328 阅读 · 0 评论 -
UVA 1586
注意,元素后面可能没有数字,也可能有多个数字。Code:#include<cstdio>#include<iostream>#include<vector>#include<string>#include<map>#include<cstring>#include<set>#inclu原创 2019-02-26 17:02:52 · 405 阅读 · 0 评论 -
习题3-6 纵横字谜的答案(Crossword Answers) UVa 232
题目:输入一个输入一个r行c列(1≤r,c≤10)的网格,黑格用“*”表示,每个白格都填有一个字母。如果一个白格的左边相邻位置或者上边相邻位置没有白格(可能是黑格,也可能出了网格边界),则称这个白格是一个起始格。首先把所有起始格按照从上到下、从左到右的顺序编号为1, 2, 3,…。接下来要找出所有横向单词(Across)。这些单词必须从一个起始格开始,向右延伸到一个黑格的左边或者整个网格的原创 2017-08-19 17:44:36 · 641 阅读 · 0 评论 -
UVA 232 纵横字谜的答案
Code:#include<cstring>#include<cstdio>#include<string>using namespace std;char s[15][15];int sgd[15][15];//记录是否为起始格 int r,c;//判断起始格子 bool is_start(int x, int y){ if(...原创 2019-03-02 23:12:13 · 256 阅读 · 0 评论 -
UVA 202 循环小数
题目大意:输入整数a,b( 0<= a <= 3000, 1 <= b <= 3000),输出 a/b 的循环小数表示以及循环节长度。Code:#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int MA...原创 2019-03-03 12:52:43 · 308 阅读 · 0 评论 -
例题 4-3 救济金发放(The Dole Queue) UVa 133
题目:为了缩短领救济品的队伍,NNGLRP决定了以下策略:每天所有来申请救济品的人会被放在一个大圆圈,面朝里面。选定一个人为编号 1 号,其他的就从那个人开始逆时针开始编号直到 N。一个官员一开始逆时针数,数 k 个申请者,然后另一个官员第 N 个始顺时针方向数 m 个申请者,这两个人就出圆圈。如果两个官员数的是同一个人,那个人则出圈,如果选了两个不同的人,则先输出第一个第一个官员数出的那个人原创 2017-08-21 17:14:47 · 729 阅读 · 1 评论 -
排列(暴力穷举)
排列原创 2017-08-16 17:47:00 · 796 阅读 · 0 评论 -
UVa1584 环状序列 (Circular Sequence)
字典序 比较原创 2017-08-17 17:11:44 · 494 阅读 · 0 评论 -
子序列和
子序列和(溢出)原创 2017-08-14 23:37:25 · 322 阅读 · 0 评论 -
例题 5-3 安迪的第一个字典(Andy's First Dictionary) UVa 10815
题目大意:输入一个文本,找出所有不同的单词(连续的字母序列),按照字典序从小到大输出,单词不区分大小写(算一个) 输出时 全部按照小写格式输出。实现:#include#include#include#include#include #includeusing namespace std;string to_upper(string str)//字符串小写转换为原创 2017-08-25 12:52:47 · 703 阅读 · 1 评论 -
UVa 340 猜数字游戏提示(Master-Mind-Hints)
猜数字游戏提示原创 2017-08-17 12:23:49 · 465 阅读 · 0 评论 -
例题 4-1 古老的密码(Ancient Cipher) UVa 1339
题目:古老的密码题目描述:给定两个长度一样且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,之后对26个字母做一个一一映射,使得两个字符串相同例如,JWPUDJSTVP重排后可以得到WJDUPSJPVT,之后把每个字母映射到它的前面一个字母,得到VICTORIOUS,输入两个字符串,输出YES或者NO题目分析:因为字母可以重排,每个字母的位置原创 2017-08-21 08:41:18 · 1049 阅读 · 0 评论 -
例题 4-2 刽子手游戏(Hangman Judge)
Hangman Judge是一个猜英文单字的小游戏(在电子字典中常会看到),游戏规则如下:1、答案单字写在纸上(每个字元一张纸),并且被盖起来,玩家每次猜一个英文字元(letter)。2、如果这个英文字元猜中(在答案的英文单字中有出现),被猜中的字元就被翻开。例如:答案是book,如果你猜o,book中的两个o就会被视为已猜中。3、如果这个英文字元未出现在答案的单字中,就会在hangm原创 2017-08-21 10:40:53 · 1875 阅读 · 0 评论 -
习题 3-5 谜题 Puzzle (World Finals 1993) UVa 227
题目:有一个5*5网格,其中恰好一个格子是空的,其它格子都有一个字母。一共有4种指令:A B R L,分别表示上 下 左 右 。 输入 初始网格和指令序列(以数字0结束),输出指令执行完毕后的结果。如果有非法指令,应输出“This puzzle has no final configuration.”Input:TRGSJXDOKIM VLNWPABEUQHCFAR原创 2017-08-19 12:08:33 · 449 阅读 · 0 评论 -
习题 3-8 循环小数 Repeating Decimals UVa 202
题目名称:循环小数题目描述:输入整数a和b a大于等于0小于等于3000,b大于等于1小于等于3000,输出a/b的循环小数表示以及循环节长度。如果循环周期大于50,只显示50位,之后的全部用……表示实现 :#include#include#define maxn 3005int main() { int a, b; int reminder_pos[ma原创 2017-08-20 15:21:35 · 1227 阅读 · 0 评论 -
习题 3-7 DNA序列(DNA Consesus String) UVa 1368
题目大意: 给m个长度为n的DNA序列,求一个DNA序列到所有序列的总汉明距离最小,汉明距离为不同字符的位置的个数。如果有多个满足题意得序列则取字典序最小的那个。Input25 8TATGATACTAAGCTACAAAGATCCTGAGATACTAAGATGT4 10ACGTACGTACCCGTACGTAG原创 2017-08-20 08:23:38 · 704 阅读 · 0 评论 -
例题 4-4 信息解码 (Message Decoding) UVa 213
题意:给一个编码头和一串编码(编码可以换行),编码头根据以下规则对应编码{ 考虑下面的01串: 0,00,01,10,000,001,010,101,110,0000,0001.....首先是长度为1的串,然后是长度为二的串,以此类推。并且每一段长度的数字从0到(1 编码文本由多个小节组成,每小节前三位数字表示该小节中每个编码的长度(例010表示编码长度为2),然后是各个字符的编码原创 2017-08-22 12:06:07 · 444 阅读 · 0 评论 -
HDOJ 1003 MaxSum (求出对应区间)
Max SumTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 301482 Accepted Submission(s): 71546 Problem DescriptionGiven a sequence a[1],...原创 2018-10-30 15:24:02 · 188 阅读 · 0 评论 -
hdoj 1026
#include#includeusing namespace std;const int INF = 9999999;const int MAX = 105;struct Node{ int x, y; int step;};struct cmp{ bool operator () (const Node &a, const Node &b){ return a.st原创 2017-11-30 11:53:11 · 255 阅读 · 0 评论 -
hdoj 1863 最小生成树(kruskal + 并查集)
题目链接#include#include#includeusing namespace std;struct Edge{ int from, to, w; int next;};int tol, n, m,u,v,w,cop,sum;int head[105];int id[105];Edge edges[10005];//根据顶点估计边数 完全图这里 用有向表示无向 故原创 2017-12-12 19:13:09 · 231 阅读 · 0 评论 -
hdoj 1875 畅通工程再续 Prim / kruscal
1、kruskalimport java.awt.Container;import java.util.ArrayList;import java.util.Collections;import java.util.Scanner;public class Main { ArrayList list; int c; int[]x = new int[105]; int[]y =原创 2017-11-24 15:16:34 · 282 阅读 · 0 评论 -
hdoj 1874 单源最短路径
这里 需要注意 输入边的时候 可能重复输入 I - > j的边 需要判断 map[I][j] > w 选择 多次输入中最小的边dijkstra#include#include#define MAX 300#define INF 999999999using namespace std;int map[MAX][MAX];int dis[MAX];bool vis[MAX];原创 2017-12-16 20:40:21 · 188 阅读 · 0 评论 -
HDOJ 1004 水题(但有值得注意的地方)
题意:统计出现最多次数的单词code1:注意这个 需要判断 是否越界(while循环位置),#include<bits/stdc++.h>using namespace std;/* 题目很简单 但是需要注意的是 最后几个相等 的时候 会出现 数组越界的问题 */int main() { string color; int n; while(c...原创 2018-10-30 17:18:00 · 282 阅读 · 0 评论 -
hdoj 1051 Wooden Sticks
要点:主要就是排序 可以按照长度 或者 宽度 都可以,这样正确性是因为(以长度排序)当按照长度升序时,若此时宽度也按升序必然正确,但是若此时宽度小于之前的木头,那么这个必然不能和之前的木头用同种器材处理,例如 (2, 5)(4, 7)(6,3) 此时(6, 3)中 3 比较小所以不可能与前面的(2, 5)(4, 7)用同种器械。import java.util.ArrayList;impor原创 2017-11-17 17:42:20 · 171 阅读 · 0 评论 -
hdoj 1597 二分 下界(等差数列)
题目链接MAX根据题目 n(n+1)/2 = INT_MAX 估计出来的#include#include #include#include#include#define MAX 66000using namespace std;int k, n;int g, t;long long a[MAX+1];int main() { // freopen("o原创 2017-12-10 13:40:36 · 219 阅读 · 0 评论 -
hdoj 2544 最短路径 dijkstra + 优先队列
点击打开链接这题 注意点 : 用vector模拟 邻接表每个Case需要 清空vector (切记) 可以只用一个Edge对象 同时表示 优先队列的(顶点,距离)对象 又表示边集合 优先队列 比较的两种写法 一种写成friend形式(不能加const) 一种末尾必须加const0ms AC#include#include#include#defin原创 2017-12-17 16:00:41 · 262 阅读 · 0 评论 -
hdoj 2141 二分 + 优化
题目链接注意 1、D数组(放前面两数组和的数组)的范围是 MAX*MAX ,之前写成 2*MAX (提交提示MLE) 2、题目可以少用一个数组B 3、发现数组越界 比附 求和那个循环n,l写错位置 也提示MLE(不知道为啥 数组越界G++提示MLE)#include#include#include#include#include#原创 2017-12-11 17:40:26 · 251 阅读 · 0 评论 -
hdoj 1010 DFS +减枝
#include#includeusing namespace std;int sx,sy,ex,ey;int maze[10][10];char maze_in[10];int n,m,t;bool sol;int wall;int dir[4][2]= {{1,0},{-1,0},{0,1},{0,-1}};void dfs(int x, int y, int k) {原创 2017-11-28 15:32:50 · 234 阅读 · 0 评论 -
hdoj 1026 搜索
题目链接、#include#include#includeusing namespace std;const int INF = 9999999;const int MAX = 102;struct Node{ int x, y; int step; int prex, prey; char c;};struct cmp{ bool operator ()原创 2017-12-02 19:42:53 · 247 阅读 · 0 评论 -
hdoj 2037 看的节目最多
package hd2037;import java.util.ArrayList;import java.util.Collections;import java.util.Scanner;public class Main { public static void main(String[] args) { ArrayList list; Scanner in = n原创 2017-11-15 22:08:02 · 341 阅读 · 0 评论 -
hdoj 1001 水题坑人 小心
题目链接可能在n*(n+1)乘法的时候,会溢出。看这句要求“You may assume the result will be in the range of 32-bit signed integer ”,要求的是求和结果是32位有符号整数。OJ给出的测试数据的求和结果(n*(n+1)/2)一定是32位整数范围内的,但是(n*(n+1))就不一定了所以n(n+1)在这里不可行另外这题原创 2017-12-12 19:39:01 · 423 阅读 · 0 评论 -
HDU1062 Text Reverse
import java.io.BufferedInputStream;import java.util.Scanner;public class Main { public static void main(String args[]) { Scanner in = new Scanner(new BufferedInputStream(System.in)); int n =原创 2017-11-11 17:08:32 · 200 阅读 · 0 评论 -
hdoj 1595 最短路中的最长路(good)
#include#include#include#includeusing namespace std;#define MAX 1005#define INF 9999999int pre[MAX];int d[MAX];int head[MAX];int used[MAX][MAX];//1表示有效边 0表示无效边 bool marked[MAX];int dis[MAX原创 2017-11-29 16:57:03 · 325 阅读 · 0 评论