水题
文章平均质量分 75
理塘顶针
相信美好
展开
-
蓝桥杯 错误票据 (字符转数字技巧)
标题:错误票据某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。要求程序首先输入一个整数N(N<100)表示后面数据行数。接着读入N行数据。每...原创 2018-03-31 17:39:35 · 312 阅读 · 0 评论 -
广度优先遍历的几个例题
题目来自《啊哈!算法》1.广度优先搜索遍历二维数组迷宫0 0 1 00 0 0 00 0 1 00 1 # 00 0 0 1(下标从1开始,#为终点,左上角为起点)先上代码#include "stdafx.h"#include "iostream"using namespace std;typedef struct Queue{ int x; int y; int step;};...原创 2017-06-26 15:35:35 · 5874 阅读 · 0 评论 -
蓝桥杯基础练习 高精度加法
问题描述 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。算法描述 由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。对于这种问题,一般使用数组来处理。 定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。同样可以用一个数组B来存储b。 计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数...原创 2018-03-12 13:46:00 · 1019 阅读 · 0 评论 -
基础练习 阶乘计算
锦囊1:数组锦囊2:使用数组来保存一个整数,按手算的方法处理。问题描述 输入一个正整数n,输出n!的值。 其中n!=1*2*3*…*n。算法描述 n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。 将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。 首先将a...原创 2018-03-09 21:31:56 · 363 阅读 · 1 评论 -
蓝桥杯 蚂蚁感冒 (模拟)
长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。【数据格式】 第一行输入一个整数n (1 < n &...原创 2018-03-30 19:20:27 · 413 阅读 · 0 评论 -
蓝桥基础练习 回形取数
问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。一开始位于矩阵左上角,方向向下。输入格式 输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。接下来m行每行n个整数,表示这个矩阵。输出格式 输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。样例输入3 31 2 34 5 67 8 9样例输出1 ...原创 2018-03-15 14:24:13 · 441 阅读 · 0 评论 -
兰顿蚂蚁
#include<iostream>#include<algorithm>using namespace std;bool mp[100][100];int dir,x,y;void Move(){ int tx=x,ty=y; if(mp[x][y]==1) { if(dir==1){dir=4;y+=1;} else if(dir==2)...原创 2017-07-17 14:36:21 · 445 阅读 · 0 评论 -
蓝桥杯 剪邮票 (DFS+BFS)
剪邮票如【图1.jpg】, 有12张连在一起的12生肖的邮票。现在你要从中剪下5张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图2.jpg】,【图3.jpg】中,粉红色所示部分就是合格的剪取。请你计算,一共有多少种不同的剪取方法。请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。原创 2018-03-28 21:36:01 · 646 阅读 · 0 评论 -
蓝桥 凑算式
【题目】 B DEF A + —- + ——– = 10 C GHI这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。(比赛时,题目有改动)比如: 6+8/3+952/714 就是一种解法, 5+3/1+972/486 是另一种解法。这个算式一共有多少种解法? 注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字。别忘了double#include <ios...原创 2018-03-20 21:03:28 · 297 阅读 · 0 评论 -
蓝桥 猜算式
【题目】 看下面的算式: □□ x □□ = □□ x □□□ 它表示:两个两位数相乘等于一个两位数乘以一个三位数。 如果没有限定条件,这样的例子很多。 但目前的限定是:这9个方块,表示1~9的9个数字,不包含0。 该算式中1至9的每个数字出现且只出现一次! 比如: 46 x 79 = 23 x 158 54 x 69 = 27 x 138 54 x 93 = 27 x 186 ….. 请编程,输...原创 2018-03-20 20:49:34 · 332 阅读 · 0 评论 -
整数划分并输出(DFS)
问题描述:将正整数n表示成一系列正整数之和:n=n1+n2+…+nk,其中n1≥n2≥…≥nk≥1,k≥1。正整数n的这种表示称为正整数n的划分。问题1:输出整数n的所有可能的划分,如:输入:6输出: 5+1 4+2 4+1+1 3+3 3+2+1 3+1+1+1 2+2+2 2+2+...原创 2018-03-20 12:08:15 · 2810 阅读 · 2 评论 -
蓝桥杯基础练习 2n皇后问题
问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。输入格式 输入的第一行为一个整数n,表示棋盘的大小。 接下来n行,每行n个0或1的整数,如果一个整数为1,表示对应的位置可以放皇后,如果一个整数为0...原创 2018-03-15 12:49:57 · 772 阅读 · 0 评论 -
深度优先遍历的8个简单小例题
最近在看一些算法书,查缺补漏,什么?OJ?表示只做过几十个水题,现在开始正式看算法,希望早日脱离鱼塘。本博文面向数据结构已经入门的人引用《啊哈!算法》从前上课的时候只知道深搜是用来搜图和二叉树的,现在才知道原来深搜的应用如此灵活1.输入一个数n,输入1~n的全排列比如123 132 213 231 312 321先上代码#include "stdafx.h"#include <cstdio...原创 2017-06-23 16:22:32 · 22877 阅读 · 7 评论 -
蓝桥杯基础练习 特殊回文数
问题描述 123321是一个非常特殊的数,它从左边读和从右边读是一样的。 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于n 。输入格式 输入一行,包含一个正整数n。输出格式 按从小到大的顺序输出满足条件的整数,每个整数占一行。样例输入52样例输出899998989989998899数据规模和约定 1<=...原创 2018-03-07 21:08:51 · 346 阅读 · 0 评论 -
UVA 10976 数论 枚举
#include <iostream> using namespace std;int X[1000],Y[1000];int main() { freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); int k,x,y; while(cin>>k) { int m...原创 2017-08-22 17:45:21 · 541 阅读 · 0 评论 -
UVA 11059
#include <iostream> using namespace std;int main() { //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); int n,a[20],T=0; while(cin>>n) { T++; for(int i...原创 2017-08-22 15:59:02 · 439 阅读 · 0 评论 -
UVA 725 水
#include<iostream> #include<set> #include<cstring>using namespace std;int main() { int n,T=0; while(cin>>n&&n) { if(T++)cout<&...原创 2017-08-21 15:07:24 · 279 阅读 · 0 评论 -
POJ - 1664
#includeint f(int M,int N){ if(M==0||N==1) { return 1; } if(M<0) { return 0; } return f(M-N,N)+f(M,N-1);}int main(){ int t; int M,N; int a[21]={0}; int i; while(scanf("%d",原创 2017-05-21 17:39:34 · 244 阅读 · 0 评论 -
UVA 442 栈解析表达式
#include #include #include #include using namespace std;typedef struct Matrix{ int a; int b;}Matrix;int main(){ int n; cin >> n; map m; for (int i = 0;i < n;i++) { char name; cin >原创 2017-08-09 21:02:21 · 444 阅读 · 0 评论 -
UVA 1593
原文http://blog.csdn.net/a197p/article/details/43465333初学stl,istringstream和getline的各种用法还是见得太少//#define LOCAL #include #include #include #include #include #include #includ转载 2017-07-26 17:29:23 · 377 阅读 · 0 评论 -
UVA 1594
#include#includeusing namespace std;int abs(int n) { return n>0 ? n : -n;}int main(){ int T;cin>>T; while (T--) { int t, n;cin >> t; vector v; while (t--) { cin >> n;v.push_back(原创 2017-07-27 22:56:27 · 345 阅读 · 0 评论 -
UVA 10935
简单队列模拟#include#include#includeusing namespace std;int main(){ int N; while (cin >> N&&N) { cout << "Discarded cards:"; queue q; for (int i = 1;i <= N;i++)q.push(i); bool first = tru原创 2017-07-27 22:57:38 · 353 阅读 · 0 评论 -
UVA 10391
#include#include#include#define setfind(y) words.find(y)!=words.end()using namespace std;set words;int main(){ string str; set::iterator it; while (cin >> str)words.insert(str); for (it = w原创 2017-07-28 11:18:32 · 369 阅读 · 0 评论 -
UVA 1595
#include#include#include#include#include using namespace std;typedef struct Pos{ int x; int y; bool operator < (const Pos& p) const { {} return x > p.x; } bool operator == (const原创 2017-07-28 14:24:28 · 408 阅读 · 0 评论 -
UVA 12100
#include#include#include#include#include#include using namespace std;typedef struct Job{ int pr; bool flag;}Job;int main(){ int T;cin >> T; while (T--) { queue q; priority_queue p原创 2017-07-29 00:19:38 · 293 阅读 · 0 评论 -
蓝桥基础 十六进制转八进制
问题描述 给定n个十六进制正整数,输出它们对应的八进制数。输入格式 输入的第一行为一个正整数n (1<=n<=10)。 接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式 输出n行,每行为输入对应的八进制正整数。 【注意】 输入的十六进制数不会有前导0,比如012A。 输出的八进制数也不能有...原创 2018-03-06 20:27:15 · 217 阅读 · 0 评论 -
蓝桥基础练习 Huffuman树
问题描述 Huffman树在编码中有着广泛的应用。在这里,我们只关心Huffman树的构造过程。 给出一列数{pi}={p0, p1, …, pn-1},用这列数构造Huffman树的过程如下: 1. 找到{pi}中最小的两个数,设为pa和pb,将pa和pb从{pi}中删除掉,然后将它们的和加入到{pi}中。这个过程的费用记为pa + pb。 2. 重复步骤1,直到{pi}中只剩下一个数。...原创 2018-03-12 14:48:48 · 296 阅读 · 0 评论 -
UVA 10340
#include#includeint main(){ int top,len; char s[100000],t[100000]; while(scanf("%s %s",s,t)!=EOF) { top=0; len=strlen(s); for(int i=0;i<strlen(t);i++) if(t[i]==s[top])top++; pr原创 2017-07-09 19:35:28 · 305 阅读 · 0 评论 -
UVA 455 暴力枚举
#include#includeint main(){ char s[80]; int T,i,j; scanf("%d",&T); while(T--) { bool found=false; scanf("%s",s); int len=strlen(s); for(i=1;i<=len/2;i++)//找因数,每个小于len/2的因数都原创 2017-07-08 16:48:02 · 527 阅读 · 0 评论 -
UVA 1225
#include#includeint main(){ int total[10],T; scanf("%d",&T); while(T--) { int n,i; scanf("%d",&n); memset(total,0,sizeof(total)); for(i=1;i<=n;i++) { int t=i; while(t){tot原创 2017-07-08 15:49:10 · 444 阅读 · 0 评论 -
HDU - 2033
#includevoid main(){ int N; int time[101]={0}; int sum[101]={1,2,3,4,5,6}; int i,j; int t; while(scanf("%d",&N)!=EOF) { t=1; if(N==0) { continue; } for(i=1;i<=N;i++) {原创 2017-05-21 17:30:42 · 353 阅读 · 0 评论 -
HDU - 2035
#includevoid main(){ int A,B; int x; while(scanf("%d%d",&A,&B)!=EOF) { x=A; if(A==0&&B==0) { break; } if(A10000) { continue; } for(int i=1;i<B;i++) {原创 2017-05-21 17:33:29 · 375 阅读 · 0 评论 -
HDU - 2005
#includevoid main(){ int year,month,day; int months[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int days; int i; while(scanf("%d/%d/%d",&year,&month,&day)!=EOF) { days=0; if(year%4原创 2017-05-21 17:34:55 · 554 阅读 · 0 评论 -
POJ - 3749
#include#includevoid main(){ char start[15]; char password[200]; char end[10]; int i; while(gets(start)) { if(strcmp(start,"START")!=0) { if(strcmp(start,"ENDOFINPUT")==0) {原创 2017-05-21 17:36:19 · 399 阅读 · 0 评论 -
POJ - 3979
#include#includeint ZXGBS(int a,int b){ int i; for(i=2;;i++) { if(i%abs(a)==0&&i%(b)==0) { return i; break; } }}int ZDGYS(int a,int b){ int i,t; if(abs(a)<=abs(b))原创 2017-05-21 17:37:27 · 345 阅读 · 0 评论 -
POJ - 3750
#include#includeint main(){ int N; int i; int W,S; int t; int j; char name[65][16]; while(scanf("%d",&N)!=EOF) { if(N>64||N<0) { continue; } for(i=1;i<=N;i++) {原创 2017-05-21 17:38:31 · 392 阅读 · 0 评论 -
POJ - 3980
#includeint mod(int n,int m){ int t; t=n/m; return n-m*t;}int main(){ int a,b; while(scanf("%d%d",&a,&b)!=EOF) { if(a32767) { continue; } printf("%d\n",mod(a,b)); }原创 2017-05-21 17:40:46 · 363 阅读 · 0 评论 -
HDU - 2577
#include#includeint main(){ int t,sum,ans,da,i; char a[2050]; scanf("%d",&t); while(t--) { scanf("%s",a); sum=ans=0; da=0; for(i=0;a[i]!=0;i++)原创 2017-05-21 17:41:56 · 333 阅读 · 0 评论 -
HDU - 2569
#includevoid main(){ int c,n; int f[100]={0}; int i; f[1]=3; f[2]=9; for(i=3;i<40;i++) { f[i]=(2*f[i-1]+f[i-2]); } while(scanf("%d",&c)!=EOF) { for(i=1;i<=c;i++) {原创 2017-05-21 17:43:04 · 408 阅读 · 0 评论 -
HDU - 2206
#include char str[102]; int ok; int check(char ch){ if(ch >= '0' && ch <= '9') { return 1; } if(ch == '.') { return 2;原创 2017-05-21 17:45:02 · 375 阅读 · 0 评论