计算机系统应用教程网站

网站首页 > 技术文章 正文

CSP-NOIP信息学竞赛 算法(01)由分钱游戏看逆向思维

btikc 2024-10-26 08:43:52 技术文章 12 ℃ 0 评论

题目:甲、乙、丙三人共有24元,先由甲分钱给乙、丙两人,所分的数与各人已有的数相同;接着由乙分给甲、丙,分法相同;再由丙分钱给甲、乙,分法相同。经过上述三次分钱后,每个人的钱数恰好一样多。求原先各人的钱数是多少 ?

正向模拟:

反向模拟:




程序代码:
#include<cstdio>

#include<iostream>

using namespace std;

int main(){

int a=8,b=8,c=8;

a/=2;b/=2;c=c+a+b;//c分钱的逆过程

a/=2;c/=2;b=b+a+c;//b分钱的逆过程

b/=2;c/=2;a=a+b+c;//a分钱的逆过程

printf("a=%d,b=%d,c=%d\n",a,b,c) ;

return 0;

}

策略思考:
逆向思维是指从事物的相反或者否定的方向去思考。相对于正向思维,逆向思维实际运用中可以细分出三个维度:

(1)角度转换。思考问题从彼至此,切换角度或者位置。

(2)时间逆向。从过去判断未来,从未来思考过去。

(3)顺序逆向。打破常规顺序,关键时能出奇制胜。

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表