美文网首页
枚举法求解常见问题

枚举法求解常见问题

作者: Tangbh | 来源:发表于2017-03-13 13:07 被阅读54次

完美立方:

//a的三次方等于a,b,c三个数的立方之和,这一组数称为完美立方

#includeusing namespace std;

int main()

{

int n;

cin >> n;

int count = 0;

for (int a = 2; a <= n; a++)

{

for (int b = 2; b < a; b++)

{

for (int c = b; c < a; c++)

{

for (int d = c; d < a; d++)

{

if (a*a*a == b*b*b + c*c*c + d*d*d)

{

printf("Cube=%d,Tripe=(%d,%d,%d)", a, b, c, d);

}

count++;

}

}

}

}

cout << "times:" << count;

}

求人体的生理高峰的日子:

#includeusing namespace std;

#define N 21252

int main()

{

//人体的体力智商情商高峰分别每23,28,33天出现一次,a,b,c分别是三次高峰出现的日子,求下一次高峰出现的日子

//int a, b, c;

//cin >> a >> b >> c;

//for (int i = 0; i < 21252; i++)          //最简单的枚举法

//{

// if ((i - a) % 23 == 0 && (i - b) % 28 == 0 && (i - c) % 33 == 0)

// {

// cout << i;

// }

//}

int p, e, i, d, caseNo = 0;

while (cin>>p>>e>>i>>d&&p!=-1)

{

++caseNo;

int k;

for (k = d + 1; (k - p) % 23; ++k);

for (; (k - e) % 28; k += 23);

for (; (k - i) % 33; k += 23 * 28);

cout << "case" << caseNo << "下一次高峰出现在" << k - d << "天后";

}

return 0;

}

分析出假币并判断出假币的重量:

#includeusing namespace std;

//若干硬币,有一枚假币,称量三次,找出假币

char Left[3][7];  //天平左边硬币

char Right[3][7];    //天平右边硬币

char Result[3][7];

bool IsFake(char c, bool light)  //light表示假币为轻,否则表示假币为重

{

for (int i = 0; i < 3; i++)

{

char *pLeft, *pRight;

if (light)

{

*pLeft = Left[0][0];

pRight = Right[i];

}

else {

pLeft = Left[i];

pRight = Right[i];

}

switch (Result[i][0])

{

case 'u':

if (strchr(pRight, c) == NULL)

{

return false;

}

break;

case 'e':

if (strchr(pLeft, c) || strchr(pRight, c))

{

return false;

}

break;

case 'd':

if (strchr(pLeft, c) == NULL)

{

return false;

}

break;

}

}

return true;

}

int main()

{

int t;

cin >> t;

while (t--)

{

for (int i = 0; i < 3; i++)

{

cin >> Left[i] >> Right[i] >> Result[i];

for (char c = 'A'; c <= 'L'; c++)

{

if (IsFake(c, true))

{

cout << c << "是假币并且比较轻" << endl;

}

else {

if (IsFake(c, false))

{

cout << c << "是假币并且比较重" << endl;

}

}

}

}

}

}

相关文章

  • 枚举法求解常见问题

    完美立方: //a的三次方等于a,b,c三个数的立方之和,这一组数称为完美立方 #includeusing nam...

  • 最大子数组和(cpp)

    1.暴力求解法 2.优化枚举(动态规划)法 3.贪心法 4.分治法

  • 枚举法

    枚举法在我看来主要包括简单枚举、生成-测试法和回溯法 简单枚举 简单枚举:枚举一些相对简单的内容,基本不用动脑筋。...

  • 第一章 基础思维

    第一节 代入排除 适用题型:多位数、年龄、不定方程、余数 不定方程求解还可以用: 1.二元不定方程: ①枚举法 ②...

  • 分治策略

    求解递归式方法 最大子数组问题 分治策略 分治法流程 伪代码 C++实现 线性解 流程 代入法求解递归式 递归树法...

  • 无约束凸优化算法

    本章涉及知识点1、scipy库求解全局最优和局最优2、多元函数的极值求解算法3、牛顿迭代法算法4、牛顿迭代法求解多...

  • leetCode-05 《最长回文子串》

    最长回文子串 暴力枚举法 中心扩散法

  • iOS NSLineBreakMode 解释

    NSLineBreakMode 枚举意义: 常见问题场景: Label中文与数字混合导致换行// 解决方案labe...

  • [leetcode] [Tag Backtracking回溯]

    回溯法 回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就...

  • 统计基础15:最大似然法估计二项式分布参数

    前面我们学习了解了最大似然法求解正态分布参数,求解指数分布参数。今天我们再来看看最大似然法如何求解二项式分布参数。...

网友评论

      本文标题:枚举法求解常见问题

      本文链接:https://www.haomeiwen.com/subject/pgvfnttx.html