UVA Oj Programming~
文章平均质量分 54
LadyFisrt
这个作者很懒,什么都没留下…
展开
-
UVa 10392 大数分解
/** 解题思路:* 该题不难、重在打素数表就ok、*/#include #include int prim[ 105000 ],a[ 1000005 ];int main( ){ long long n; int i,j,p,len = sqrt( 1000005 ); for( i=2;i<=len;i++ ) if( !a[原创 2014-02-20 00:39:00 · 1034 阅读 · 0 评论 -
UVa 573 蜗牛
/** 解题思路:* 水题、注意什么数据使用Double类型什么数据使用整型即可*/#include int main( ){ int H,D; int day; double sum,U,F; while( scanf("%d%lf%d%lf",&H,&U,&D,&F) && H ) { sum = day = 0原创 2014-02-13 14:58:35 · 810 阅读 · 0 评论 -
UVa 10025 ?1?2...?n=k问题
/** 解题思路:* 一道数学规律推导的题目:* 思路:1、求出1+2+....+n >= k ,中n的最小值.* 2、由数学规律可知,所要求的 N 值一定在sqrt( 2*k ) ~ n 中* 3、初始化N = sqrt( 2*k );直到算到 N*( N+1 ) - 2*k >=0 (满足基本条件,* 并且 ( N*( N+1 ) - 2*k )原创 2014-02-12 12:17:45 · 957 阅读 · 0 评论 -
UVa 10112 Myacm三角形
/** 解题思路:* 求最大的一个三角形、且其中不包含任一顶点,参考P84*/#include #include char s[ 105 ],c;int mon[ 105 ][ 2 ];double area( double x1,double y1,double x2,double y2,double x3,double y3 ){ return fabs(0.5*(原创 2014-02-24 21:59:20 · 745 阅读 · 0 评论 -
UVa 107 帽子里的猫
/** 解题思路:* 题意: 输入最开始的猫的高度和最后干活猫的数量 , 求有多少只猫不用干活和所有猫的高度和是多少* 把题意理清就好( 设 H , M为输入的两个值 , K为产生了多少代 , N为每代产生多少只猫 )* N ^ k = M , H * ( 1/( N+1 ) ) ^K = 1;* K = log( M ) / log( N原创 2014-02-12 14:21:24 · 1461 阅读 · 0 评论 -
UVa 591 一盒砖
/** 解题思路:*此题不难,求完平均后再做一下处理*/#include #include int main( ){ int n,total = 1; int i; int sum1,sum2; int a[ 55 ]; while( scanf("%d",&n) && n ) { sum1 = sum2原创 2014-02-12 12:40:09 · 830 阅读 · 0 评论 -
UVa 621 秘密研究
/** 解题思路:* 很简单的一道水题,直接按题目讯息输出即可*/#include #include int main( ){ int t; int len; char s[ 1000 ]; scanf("%d",&t); while( t-- ) { scanf("%s",s); len原创 2014-02-12 11:25:37 · 680 阅读 · 0 评论 -
UVa 10387 台球
/** 解题思路:* 题目大意就是,给出5个数据,分别是,台球桌的水平长度,竖直长度,小球滚动多少秒,撞击竖直边缘的次数,撞击水平边缘的次数* 要求是给出,小球最开始击打时的初始角度和每秒钟滚动的速度* 解题:* 刚开始碰到题目很没有思路、给的都是距离的条件,怎么去求角度速度* 这题有点转换的技巧在里面, V = S / t;*原创 2014-02-24 18:05:04 · 743 阅读 · 0 评论 -
UVa 375 内接圆和等腰三角形
/** 解题思路:* 题意不难理解、一直求内接圆半径、知道半径长度小于0.000001为止*/#include #include int main( ){ int t; double x,y,r,sum; const double pi = 4.0 * atan( 1.0 ); scanf("%d",&t); while(原创 2014-02-24 17:08:19 · 930 阅读 · 0 评论 -
UVa 579 时钟的指针
/** 解题思路:* 题目不难:就是求时针和分针的夹角度数*/#include #include int main( ){ char c; int H,M; double sum,ang; while( scanf("%d%c%d",&H,&c,&M) && ( H || M )) { sum = M*1.0/5;原创 2014-02-24 15:06:45 · 697 阅读 · 0 评论 -
UVa 253 立方体着色
/** 解题思路:* 题意容易理解,可以画图分析,发现只要对立面都匹配就为True!*/#include #include int vis[ 15 ];char s1[ 8 ],s2[ 8 ];int compare( int x , int y ,int a,int b,int c,int d ){ if( !vis[ x ] && !vis[ y ] &&原创 2014-02-10 14:43:08 · 978 阅读 · 3 评论 -
UVa 10785 疯狂的命理学家
/** 解题思路:* 该题目不难,看着吓人,主要就是分别按元音和辅音存储,每个元音不超过21个,每个辅音不超过5个,在长度限定范围内,* 使得所得到的字符串对应数值最小,分别存储完元音和辅音数组后,对二者进行排序,最后按奇数位元音、偶数位辅音,且以字母序输出!*/#include #include #include char s1[ 30 ] = "1234原创 2014-02-09 16:24:50 · 835 阅读 · 0 评论 -
UVa 10194 足球
/** 这道题跪求好心人帮忙看看哪里错了、真心找不到错哎* 别人都是用结构体做的、但是我是直接开多个数组做的、恳求好心人帮忙看看哪错了!*/#include #include char teamName[ 105 ];char team[ 35 ][ 35 ];char situ[ 1000 ][ 150 ];int win[ 35 ] , tie[ 35 ] ,原创 2014-02-08 16:45:17 · 1284 阅读 · 0 评论 -
UVa 113 密码学的力量
/** 解题思路:* 题意很好理解,就是求开n次方的数,可以利用pow( )函数*/#include #include #include #define A 120int main( ){ int n; char s[ A ]; double x , y; while( ~scanf("%d%s",&n,s ) ) {原创 2014-02-10 09:34:01 · 995 阅读 · 0 评论 -
UVa 10161 棋盘上的蚂蚁
/** 解题思路:* 观察输入N可知,输入N最大为2*10^9,若模拟其行走过程则超时( 也不要考虑用数组存,开不了2*10^9这么大的数组 )* 此题技巧是采用数学推导规律的方法进行解题!*/分奇偶讨论版本:#include #include int main( ){ int n; int x; while( scanf("%d"原创 2014-02-10 11:44:14 · 956 阅读 · 0 评论 -
UVa 10499 正义的土地
/** 解题思路:* 水题,读懂题意即可*/#include int main( ){ double n; while( scanf("%lf",&n) && n>=0 ) n <= 1 ? printf("0%%\n") : printf("%.0lf%%\n",25*n); return 0;}原创 2014-02-14 13:51:25 · 1095 阅读 · 0 评论 -
UVa 10790 多少个交点?
/** 解题思路:* 水题、推公式*/#include int main( ){ long long a,b,total = 1; while( scanf("%d%d",&a,&b) && (a || b) ) printf("Case %d: %lld\n",total++,a*b*(a-1)*(b-1)/4); return 0原创 2014-02-14 14:40:27 · 670 阅读 · 0 评论 -
UVa 10061 多少个零和数字?
/** 解题思路:* 久违的一道不水的题,相当于两个问题,一个是求后缀0有多少个,一个是求数字有多少位* 后者较容易,直接用取对数及换底公式即可,* 前者就要拐拐弯了、我的做法是,首先先打素数表,( 因为任何一个合数都可以由素数组成 ),* 只要存在多个素数相乘的积为 进制B , 则末位出现一个0,重复该操作直到最后无法提供足够素数使得到 B值即跳出循环即可~*/原创 2014-02-19 23:02:50 · 1254 阅读 · 0 评论 -
UVa 350 伪随机数
/** 解题思路:* 题意不难理解,就是利用所给公式求出最多可产生不同的随机数个数* 最开始的思路是像题目中例子那样,如果产生一个数跟第一个种子相同的话则跳出循环* 写完代码后发现第三个Sample进入死循环,则发现最终的那个数有时候不是跟第一个种子相同,* 而是跟任意一个已产生的种子数相同就判跳出循环*/#include #inclu原创 2014-02-19 14:08:08 · 1132 阅读 · 0 评论 -
UVa 40均匀的生成器
/** 解题思路:* 题意比较好理解,就是求给出的step和mod能不能求到0~mod-1的所有数字,因为给出的两个数字可能达到千万级* 所以标记数组不可以使用int 类型,会爆栈,使用char类型可以AC*/#include #include #define A 10000005char vis[ A ];int main( ){ int原创 2014-02-19 13:19:35 · 736 阅读 · 0 评论 -
UVa 10110 灯光
/** 解题思路:* 题意是: 假如有n盏灯,这个人从走廊的起点走到终点n次,在从起点到终点这段路程时(反向不管),* 第 i 次就切换灯光序列号能被 i 除尽开关,问当最后一次走完后,最后一盏灯是开的还是关的* ps: 开始时所有的等都是关的* 解题:判断是否是完全平方数 + 使用longlong!!* 开始的时候使用判断因子的方法做会超时,原创 2014-02-18 17:08:34 · 806 阅读 · 0 评论 -
UVa 568 阶乘
/** 解题思路:* 题意:求改 输入数字 n 阶乘的最后一个非0位的值*刚开始结果不对是因为只保留tmp只保留了1位,应该高位一点,,比如 12 * 15 = 180 , 好像末位是8,进位是1,* 但是 82912 *15 = 1243680,实际上是末位是8,进位是6*/#include int main( ){ int n,i,sum,tmp,x原创 2014-02-18 23:56:42 · 964 阅读 · 0 评论 -
UVa 550 移位乘法
/** 解题思路:* 题意: 给出三个数字,分别是数位基数 , 第一个乘数的最后一位 , 第二个乘数,求第一个乘数的长度* 就是转换进制的思想解题*/#include int main( ){ int x,y,z; int sum,mod,m,total; while( ~scanf("%d%d%d",&x,&y,&z) ) {原创 2014-02-18 19:14:17 · 810 阅读 · 0 评论 -
UVa 575 斜二进制
/** 解题思路:* 水题、直接套用公式即可*/#include #include #include char s[ 10000 ];int main( ){ int i,len,sum; while( scanf("%s",s) ) { len = strlen( s ); if( s[ 0 ] == '0原创 2014-02-18 16:24:32 · 918 阅读 · 0 评论 -
UVa 10970 大块巧克力
/** 解题思路:* 题目本身不难,刚开始理解错题意,想的是对称切,想复杂了!*/#include int main( ){ int m,n; while( ~scanf("%d%d",&m,&n) ) printf("%d\n",m*n-1); return 0;}原创 2014-02-15 14:33:24 · 857 阅读 · 2 评论 -
UVa 10916 超级计算机
/** 解题思路:* 此题如果是一道数学题,可能大家一下就能想到用取对数来解,换成编程题后,一时半会没有想出来!!*/#include #include int main( ){ int n; int i; int x,y=2; double tmp,sum; while( scanf("%d",&n ) && n ) {原创 2014-02-15 13:31:33 · 797 阅读 · 0 评论 -
UVa 10014 简单的计算
/** 解题思路:* 此题就是推导a1的公式* 由题目已知 2a[ i ] = a[ i-1 ] + a[ i+1 ] - 2c[ i ];* 从i=1->n无限累加可得 a[ i ] + a[ n ] = a[ 0 ] + a[ n+1 ] - 2( c[ 1 ] + c[ 2 ] + .... + c[ n ] );* 再通过当n = 1 时原创 2014-02-15 17:25:03 · 918 阅读 · 0 评论 -
UVa 10177 2/3/4维方形/方体
/** 解题思路:* 仍是一道推规律的水题、画图!*/#include int main( ){ long long n,s1,s2,s3,r1,r2,r3,i,tmp; while( ~scanf("%lld",&n) ) { s1 = s2 = s3 = 0; for( i=1;i<=n;i++ )原创 2014-02-14 17:39:57 · 721 阅读 · 0 评论 -
UVa 11044 寻找Nessy
/** 解题思路:* 水题*/#include int main( ){ int a,b,t; scanf("%d",&t); while( t-- ) { scanf("%d%d",&a,&b); printf("%d\n",(a/3)*(b/3)); } return 0;}原创 2014-02-14 15:21:42 · 793 阅读 · 0 评论 -
UVa 846 步数
/** 解题思路:* 这题就是找规律题:* 由下找规律知序号1 -> 1* 4 -> 1 2 1* 9 -> 1 2 3 2 1* 16 -> 1 2 3 4原创 2014-02-13 18:05:22 · 775 阅读 · 0 评论 -
UVa 10719 多项式除法的商
/** 解题思路:* 水题、输入控制好*/#include int main( ){ int i; int k,p; int flag; int num1[ 10005 ],num2[ 10005 ] , sum; char c; while( ~scanf("%d",&k) ) { flag = p =原创 2014-02-14 16:08:48 · 841 阅读 · 0 评论 -
UVa 10250 另两棵树
/** 解题思路:* 就是求正方形给出两个对角点坐标求出另外两个*/#include int main( ){ double x1,x2,y1,y2,x,y,x3,x4,y3,y4; while( ~scanf("%lf%lf%lf%lf",&x1,&y1,&x2,&y2 ) ) { x = (x1+x2)/2;原创 2014-02-21 12:43:09 · 803 阅读 · 0 评论 -
UVa 755 487-3279
/** 解题思路:* 将字母转换成数字后,排序,然后再判断是否有重复,如果没重复数据输出,No duplicates.* 否则列举标准形式重复数据及重复个数*/#include #include #include #include char s[ 100005 ][ 10 ];char convert[ 30 ] = "22233344455566677原创 2014-02-08 18:16:51 · 749 阅读 · 0 评论 -
UVa 10106 乘积
/** 解题思路:* 题意不难理解、主要是控制好就行、下面几种注意点*1、例如99*99这种,最后还有高位进位* 2、例如00000001*1,只输出一个1,前面0不输出* 3、例如0000*101,只输出一个0* 4、数组大小控制好,否则出现RE错*/#include #include #define A 500int main(原创 2014-02-01 14:17:51 · 967 阅读 · 1 评论 -
UVa 10010 沃尔多夫在那里
/** 解题思路:*此题略坑、有好多陷阱。*第一个是、一旦确定搜索方向,该条路径方向不可改变(所以不可以用BFS或者DFS遍历搜索)* 第二个是、多组案例除最后一组外每组案例结尾有一个空行(这里错了超久、一直忽略)* 题意:*找出最上最左边的输入单词首字母的横纵坐标位置、该位置可以有一条路径把输入的字符串全部找到*/#include原创 2014-01-25 00:09:06 · 887 阅读 · 0 评论 -
UVa 10361 自动作诗机
/** 解题思路: * 这道题题意很好懂、输出直接按范例输入就好、没有什么特别要注意的陷阱、控制好就ok ~*/#include#include #define A 10000#define B 5int main( ){ int t; int p,q,r; int i,j; int flag; int pos[ B ],len[原创 2014-01-25 11:34:22 · 830 阅读 · 0 评论 -
UVa 409 "借口,借口!"
/** 解题思路:* 这是道非常坑爹的题目、开始一直Runtime error、不知道为什么、后来发现是再输入的时候* My dog ate my homework.* Can you believe my dog died after eating my canary... AND MY HOMEWORK?* This excuse is so good that it contain 0 keywords.* 最后一行系统没有换行、不能单单通过判断 ‘\n’ 来停止输入( 这仅对前两行原创 2014-01-26 20:17:31 · 835 阅读 · 0 评论 -
UVa 414 机器加工表面
/** 解题思路:* 在输入的时候计算每行的空格数、记录最大空格数* 输出最大空格数与其他行空格数之差相加!** 以下是过题代码:* 因为用了bool类型所以只能用C++交、可以将flag设置成int数据类型、控制提交C*/#include #include #include #define A 1原创 2014-01-23 18:46:43 · 859 阅读 · 0 评论 -
UVa 401 回文词
/** 解题思路:*这道题题意不难理解、就四种情况。搞了一个下午才AC,我用 C 写的 ,为了判断英文字符还是数字字符,用了一个函数isalpha( char c ),* 这个函数是在#include中,不知道为什么那样判断有问题,所以一直过不了,换成通俗的 if() 判断一下就AC了,*/#include #include #define A 50in原创 2014-01-24 16:19:19 · 659 阅读 · 0 评论 -
UVa 10878 磁带解码
/** 解题思路:* 此题就是简单的二进制码翻译成字符的题,转换一下即可。* 注意:得到的字符串不用写换行符、因为得到的字符串中最后一位即为换行符!*/#include <stdio.h>#include <math.h>int main( ){ int p,q,sum; int i; char ss[ 10000 ]; char s[ 10000 ]; char c; p = q = 0; while( getcha原创 2014-01-27 15:03:55 · 910 阅读 · 0 评论