解题报告

2018-12-08 20:30

【题意概括】

有一头超重的奶牛需要减肥,先要算出超重了多少公斤(体重=身高-105)奶牛每减重1 公斤需要跑步C 次,求奶牛总共需要跑步的次数。 【解题思路】

要做出这题首先要求标准体重,再算出超重多少公斤,再计算。 【解题反思】

这题看似简单,但是也要细心,少了个小括号就错了。 【参考程序】

#include #include using namespace std; long x,c,e,y; int main() {

cin>>x>>y>>c;

cout<<(y-(x-105))*c; return 0; }

第一题 跑步(run)

第二题 幸运奶牛(luck)

【题意概括】

N个数字,编号从一到N,如果编号是2或3的倍数就选中,输入N,求选中的奶牛数量。 【解题思路】

这题数据较大(1<=N<=2000000000)所以很容易超时,所以暴力搜索会超时,我们只要把2和3的倍数相加再减去重复的就行了。 【解题反思】

这题看似简单,但是也要进行优化,稍不留神就超时了。 【样例程序】

#include #include using namespace std; long long n,s; int main() {

freopen(\ freopen(\ cin>>n;

cout<

return 0; // n/6是指重复的2和3的倍数。所以要减去它。 }

【题意概括】

有两头奶牛(A奶牛和B奶牛)的信息学比赛成绩,现在要为它们排名,排名规则是:

1、总分高的排在前面。

2、总分相同的,满分题数多的排在前面。

3、总分相同,满分题数也相同,那么排名相同。 给出两头奶牛的成绩,求排名。

(A奶牛排名高输出1,B奶牛排名高输出2,排名相同输出0) 【解题思路】

每种情况都扫描一遍。

第一种情况:先判断他们的总分高低,如果分出胜负就不用管其他情况,就把结果存下来。

第二种情况:如果总分相同,就统计A奶牛拿50分的有多少题,B奶牛拿50分的有多少题。然后比较,如果分出胜负就把结果存下来。

第三种情况:如果总分相同,50分的题也相同,就把结果存下来。 最后输出结果。 【解题反思】

解题不要怕麻烦,这题如果没仔细检查就会全军覆没。思路要清晰。 【参考程序】

#include #include using namespace std;

long a[100000],i,q,n,p,k,e,b[100000]; int main() {

freopen(\ freopen(\ for (int i=1;i<=6;i++) {

cin>>a[i]; if (a[i]==50)

k++; //把50分的记录下来 p=p+a[i]; //把总分记录下来 }

for (int i=1;i<=6;i++) {

cin>>b[i];

第三题 排名(rank)

if (b[i]==50) e++; q=q+b[i]; }

//接下来是比较 if (q>p) n=2; else n=1;

if (q==p&&k>e) n=1;

if (q==p&&k

if (q==p&&e==k) n=0; cout<

第四题 黑白奶牛(cow)

【题意概括】

有n头奶牛,有黑和白色的,有k魔法棒使用次数,魔法棒可以把黑奶牛变成白奶牛。要选连续一段白奶牛,求最多能选多少白奶牛。 【解题思路】

可以把每头黑奶牛变成白奶牛试试,把每种情况都存起来,最后找出选的奶牛最多的情况,输出。 【解题反思】

我一开始也搞混了,因为太长,所以做完后要仔细检查。 【样例程序】

第五题 约数(divisor)

【题意概括】

有n头奶牛,有黑和白色的,有k魔法棒使用次数,魔法棒可以把黑奶牛变成白奶牛。要选连续一段白奶牛,求最多能选多少白奶牛。 【解题思路】

【解题反思】

我一开始也搞混了,因为太长,做完后要仔细检查。

第五题 约数 (divisor)

【题意分析】

给出两个正整数X 和Y,求X 和Y 的最大公约数,奶牛可以轻松解决这个问题。农夫Farmer John 决定改一改题目去考验奶牛。农夫决定询问奶牛Q 个问题,每个问题的格式是这样的: 农夫给定两个正整数a 和b,农夫保证a < = b,然后农夫询问奶牛:在a 至b 的范围内,有没有哪个整数既是X 的约数同时又是Y 的约数?如果有,输出最大的那个;如果没有,输出-1。 【解题思路】

这道题要用枚举。先用枚举,然后通过for循环找出X和Y的约数,最后求出最大的就行了。 【解题反思】

求约数时,要考虑枚举。

第六题 删数字(del)

【题意分析】

给出一个正整数T(不含0),奶牛要删掉若干位数,使T是5的倍数(至少剩下一位数,也可以一个数都不删)。有多少种不同的删除方案? 【解题思路】

我们知道,5的倍数有一个特征:末尾是0或5,题目上说T不含0,所以只需要从右到左寻找第一个5。

从右到左的第一个5(不能删掉) |

3 5 1 8 4 3 7 6 2 9 1 5 4 4 ┗━━━━━━━━━┳━━━━━━━━━┛ ┗┳-┛ 可以选择删或者不删的数 必须删掉的数

由于后三个数已经知道要删和不删,重点都在可以选择删或者不删的数这里。 3 5 1 8 4 3 7 6 2 9 1

每个数都可以选择删或者不删,如果删=1,不删=0,很像2进制数。 删除三位可以选择删或者不删的数的所有方法: 000 001 010 011 100 101 110 111 共8种

删除四位可以选择删或者不删的数的所有方法:

0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

共16种

可见删除方案的总数=2^可以选择删或者不删的数的个数。 【解题反思】

难题可以当成数学题来想,再把思路挪到程序里。不行的话先编一个暴力搜索,再进行优化。


解题报告.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:xx水电站项目申请报告

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: