刘汝佳算法竞赛入门+UVa
文章平均质量分 52
ccDLlyy
不忘初心,方得始终
展开
-
排列
//用1,2,3......9组成三个数abc,def,ghi,每个数字恰好使用一次,//要求abc/def/ghi=1/2/3//我的方法,广度优先搜索#include #include int dight[10];//从1到9,abcdefghiint book[10]={0};//标记1到9int number[3];//存abc,def,ghivoid dfs(int lo原创 2016-08-08 20:34:14 · 475 阅读 · 0 评论 -
Uva 12493 Stras(欧拉函数)
法一:暴力看看几个样例,发现数量为欧拉函数,直接套欧拉函数模板法二:推导一下发现,假设n为点的个数,m为一次跳的步数,则第一次回到原点的经过距离应为m和n的最小公倍数,而且满足跳的次数为 m*n/gcd(m,n)(最小公倍数)/ m 为n,则gcd(m,n)为1,即m,n互质,所以总数为欧拉函数#include #include #include #include using na原创 2017-03-29 09:23:57 · 718 阅读 · 0 评论 -
UVa 1339 Ancient Cipher(古老的密码)
//由题意,字母间有对应关系,而且字符位置也可以随意变动//所以,直接对两个字符串中每个字母出现的次数排序,看看相同位置相不相等即可#include #include #include int sort(const void *a,const void *b){ return *(int *)b-*(int *)a;}int main(){ char s1[101原创 2016-10-16 14:26:40 · 538 阅读 · 0 评论 -
UVa 227 Puzzle(谜题)
#include #include #include char map[6][7];int blanx,blany;//空格处int change(char ch){ if(ch=='A'){ if(blanx==1) return 0; map[blanx][blany]=map[blanx-1][blany];原创 2016-10-16 11:18:20 · 519 阅读 · 0 评论 -
UVa 455 Periodic Strings(周期串)
//求字符串的最小周期//我的思路,找与s[0]相同的字符,然后判定从s[0]到此字符之前的长度能不能作为一个周期#include #include #include int main(){ char s[110]; int n; scanf("%d",&n); getchar(); while(n--){ getchar();原创 2016-08-12 19:05:18 · 486 阅读 · 0 评论 -
uva 1225 Dight Counting(数数字)
//把前n个整数顺次放到一起,统计0~9出现的次数#include #include #include int main(){ int dight[10]; int n; scanf("%d",&n); while(n--){ memset(dight,0,sizeof(dight)); int length;原创 2016-08-12 10:49:29 · 400 阅读 · 0 评论 -
UVa 1586 Molar Mass(分子量)
//计算分子量 其中相对原子质量为:C 12.01 H 1.00 O 16.00 N 14.01#include #include #include struct molarmass{ char malor; double mass;}malormass[4]={'C',12.01,'H',1.008,'O',16.00,'N',14.01};int main()原创 2016-08-12 10:30:24 · 586 阅读 · 0 评论 -
UVa 1585 Score(得分)
//给出一个由O和组成的字符串,统计得分//每个O的得分为目前连续出现的O的个数//X的得分为0//例如:OOXXOXXOOO//score=1+2+0+0+1+0+0+1+2+3#include #include int main(){ int n; scanf("%d",&n); getchar(); char OX; int score原创 2016-08-12 08:52:03 · 536 阅读 · 0 评论 -
UVa 1584 Circular Sequence(环状序列)
//长度为n的环状串有n种表示方法,分别为从某个位置开始顺时针得到的。//字典序最小的称为最小表示//输入一个长度为n的环状DNA串(只含A,C,G,T)这四种字符//输出该串的最小表示#include #include #include #define MAXN 105int main(){ int n; int length; char string原创 2016-08-11 20:14:06 · 592 阅读 · 0 评论 -
UVa 1583 Dighter Generator(生成元)
//如果x和x各位的和等于y,那么x是y的生成元。给出n,求最小生成元#include #include int dightsum(int number){ int sum=0; while(number){ sum+=number%10; number/=10; } return sum;}int main(){原创 2016-08-11 16:21:24 · 552 阅读 · 0 评论 -
UVa 340 Master-Minds Hints(猜数字游戏的提示)
//给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B)//输入有多组测试。每组输入第一行为序列长度n,第二行是答案序列,接下来是多行猜测序列猜测序列全0该组数据结束。n=0时结束输入#include #include #include #include int compare(int number,int keycopy[],int原创 2016-08-11 00:53:45 · 533 阅读 · 0 评论 -
UVa 401 回文词(Palindromes)
#include #include #include #include //判断一个字符串(不含空格和数字零)是否为回文串和镜像串(一个字符的镜像和与它对称的字符相同)//此题字符串只含大写字母和数字字符//此题结果四种,两者都是,是其中一个,两者都不是//此题镜像://ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789//A 3 HIL JM O原创 2016-08-10 17:48:13 · 451 阅读 · 0 评论 -
UVa 272 Tex Quotes(TEX中的引号)
#include #include //TEX中,左双引号为``,右双引号为''.(英文键盘下)//给你一段文字,转换int main(){ char ch; int count=0; while((ch=getchar())!=EOF){ if(ch=='\"'){ count++; if(cou原创 2016-08-10 12:56:49 · 665 阅读 · 0 评论 -
UVa 10082 WERTYU
#include #include //把手放到键盘上时,稍不注意就会往右错一位。//输入一个一定是错位后(除空格)敲出的字符串(所有字母均大写),给出错位前的//使用常量数组,可以简化代码int main(){ char buffer[100]="`234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"; char ch;原创 2016-08-10 14:14:38 · 579 阅读 · 0 评论 -
竖式问题
#include #include #include"string.h"//给一个特定的数字集合,找出形如abc*de(三位数乘以两位数)的算式//使得在完整的竖式中,所有数字均属于这个数字集合//竖式,就是小学做数学乘法时列的那种式子//如:// 111 abc// X 11 de// ----// 111 x// 111 y// -原创 2016-08-10 11:10:20 · 801 阅读 · 0 评论 -
蛇形填数
10 11 12 19 16 13 28 15 14 37 6 5 4#include #include #define MAX 16//移动轨迹,下左上右,下左上右.......int main(){ int x,y; int count; int length=(int)sqrt(MAX); int num[原创 2016-08-10 10:48:00 · 284 阅读 · 0 评论 -
UVa 116 Unidirectional TSP
//自顶向下#include #include #include using namespace std;#define MAX 0X7FFFFFFFint dp[15][1005];int n,m,map[15][1005];int to[3]={0,-1,1};//右,右上,右下int Next[15][1005],ans,first;//ans为最小和 first为第一列原创 2017-03-14 22:07:27 · 438 阅读 · 0 评论