刘汝佳算法竞赛入门+UVa
文章平均质量分 52
ccDLlyy
不忘初心,方得始终
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
UVa 1584 Circular Sequence(环状序列)
//长度为n的环状串有n种表示方法,分别为从某个位置开始顺时针得到的。 //字典序最小的称为最小表示 //输入一个长度为n的环状DNA串(只含A,C,G,T)这四种字符 //输出该串的最小表示 #include #include #include #define MAXN 105 int main() { int n; int length; char string原创 2016-08-11 20:14:06 · 684 阅读 · 0 评论 -
UVa 116 Unidirectional TSP
//自顶向下 #include #include #include using namespace std; #define MAX 0X7FFFFFFF int 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 · 508 阅读 · 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 · 785 阅读 · 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 · 627 阅读 · 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 · 600 阅读 · 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 · 570 阅读 · 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 · 463 阅读 · 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 · 729 阅读 · 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 · 637 阅读 · 0 评论 -
排列
//用1,2,3......9组成三个数abc,def,ghi,每个数字恰好使用一次, //要求abc/def/ghi=1/2/3 //我的方法,广度优先搜索 #include #include int dight[10];//从1到9,abcdefghi int book[10]={0};//标记1到9 int number[3];//存abc,def,ghi void dfs(int lo原创 2016-08-08 20:34:14 · 555 阅读 · 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 · 653 阅读 · 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 · 619 阅读 · 0 评论 -
UVa 401 回文词(Palindromes)
#include #include #include #include //判断一个字符串(不含空格和数字零)是否为回文串和镜像串(一个字符的镜像和与它对称的字符相同) //此题字符串只含大写字母和数字字符 //此题结果四种,两者都是,是其中一个,两者都不是 //此题镜像: //ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789 //A 3 HIL JM O原创 2016-08-10 17:48:13 · 542 阅读 · 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 · 759 阅读 · 0 评论 -
UVa 10082 WERTYU
#include #include //把手放到键盘上时,稍不注意就会往右错一位。 //输入一个一定是错位后(除空格)敲出的字符串(所有字母均大写),给出错位前的 //使用常量数组,可以简化代码 int main() { char buffer[100]="`234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./"; char ch;原创 2016-08-10 14:14:38 · 677 阅读 · 0 评论 -
竖式问题
#include #include #include"string.h" //给一个特定的数字集合,找出形如abc*de(三位数乘以两位数)的算式 //使得在完整的竖式中,所有数字均属于这个数字集合 //竖式,就是小学做数学乘法时列的那种式子 //如: // 111 abc // X 11 de // ---- // 111 x // 111 y // -原创 2016-08-10 11:10:20 · 887 阅读 · 0 评论 -
蛇形填数
10 11 12 1 9 16 13 2 8 15 14 3 7 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 · 362 阅读 · 0 评论
分享