#include "stdio.h"
#include "iostream"
#define MAXNUM 30 int FalseCoin(int coin[], int low, int heigh)
{
int i, sum1, sum2, sum3;
int re; sum1 = sum2 = sum3 = ;
if (low + == heigh)
{
if (coin[low] < coin[heigh])
{
re = low + ;
return re;
}
else
{
re = heigh + ;
return re;
}
}
if ((heigh - low + ) % == ) //n是偶数
{
for (i = low; i < low+(heigh - low) / ; i++)
{
sum1 = sum1 + coin[i];
}
for (i = low + (heigh - low) / + ; i < heigh; i++)
{
sum2 = sum2 + coin[i];
}
if (sum1 > sum2)
{
re = FalseCoin(coin, low + (heigh - low) / + , heigh);
return re;
}
else
{
}
}
else
{
for (i = low; i < low+(heigh - low) / - ; i++)
{
sum1 = sum1 + coin[i];
}
for (i = low + (heigh - low) / + ; i < heigh; i++)
{
sum2 = sum2 + coin[i];
}
sum3 = coin[low + (heigh - low) / ];
if (sum1 > sum2)
{
re = FalseCoin(coin, low + (heigh - low) / + , heigh);
return re;
}
else if (sum1 < sum2)
{
re = FalseCoin(coin, low, low + (heigh - low) / - );
return re;
}
else
{
}
if (sum1 + sum3 == sum2 + sum3)
{
re = low + (heigh - low) / + ;
return re;
}
}
} int main()
{
int coin[MAXNUM];
int i, n;
int weizhi;
scanf("%d",&n);
for (i = ; i < n; i++)
{
scanf("%d",coin[i]);
}
weizhi = FalseCoin(coin, , n - );
printf("在上述%d个银币中,第 %d 个银币是假的!\n",n,weizhi);
system("pause");
return ;
}

C++ 分治思想 真假银币的更多相关文章

  1. 分治思想的应用:C++实现快速排序和随机化的快速排序

    分治思想的应用:C++实现快速排序和随机化的快速排序 原创 2014年09月08日 14:04:49 标签: 快速排序 / 随机化快速排序 / 排序算法 / 数据结构 947 1. 快速排序时冒泡排序 ...

  2. Big Data(一)分治思想

    按照课程安排,接下来半年,我将会去上一个为期半年的大数据课程.第一课是马士兵老师机构的周老师所讲,这里单纯记录讲课的内容. 问题1: 我有一万个元素(比如数字或单词)需要存储? 如果查找某一个元素,最 ...

  3. 分治思想--快速排序解决TopK问题

    ----前言 ​ 最近一直研究算法,上个星期刷leetcode遇到从两个数组中找TopK问题,因此写下此篇,在一个数组中如何利用快速排序解决TopK问题. 先理清一个逻辑解决TopK问题→快速排序→递 ...

  4. bzoj3672/luogu2305 购票 (运用点分治思想的树上cdq分治+斜率优化dp)

    我们都做过一道题(?)货币兑换,是用cdq分治来解决不单调的斜率优化 现在它放到了树上.. 总之先写下来dp方程,$f[i]=min\{f[j]+(dis[i]-dis[j])*p[i]+q[i]\} ...

  5. 分治思想 特别常用 Codeforces Beta Round #80 (Div. 1 Only) D

    D. Time to Raid Cowavans time limit per test 4 seconds memory limit per test 70 megabytes input stan ...

  6. 分治思想求解X的M次幂方

    package main import ( "fmt" ) //递归形式分治求解 func power(x, m int) int { { } else { y := power( ...

  7. LeetCode Array Easy 53. Maximum Subarray 个人解法 和分治思想的学习

    Description Given an integer array nums, find the contiguous subarray (containing at least one numbe ...

  8. Codeforces 768B - Code For 1(分治思想)

    768B - Code For 1 思路:类似于线段树的区间查询. 代码: #include<bits/stdc++.h> using namespace std; #define ll ...

  9. SDUT OJ 周赛 找有毒的那杯水(思维逻辑 + 分治思想 )

    你打我啊 Time Limit: 500ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 最近看了一个非常好玩的题,如果有972杯水,其中有971个没有毒的,1个有 ...

随机推荐

  1. Vue子组件传递数据给父组件

    子组件通过this.$emit(event,data)传递数据到父组件 以下是例子: father.vue 父组件 <template> <div> <child @ne ...

  2. Codeforces 86D Powerful array (莫队)

    D. Powerful array time limit per test 5 seconds memory limit per test 256 megabytes input standard i ...

  3. face_recognition开源人脸识别库:离线识别率高达99.38%

    基于Python的开源人脸识别库:离线识别率高达99.38%——新开源的用了一下感受一下 原创 2017年07月28日 21:25:28 标签: 人脸识别 / 人脸自动定位 / 人脸识别开源库 / f ...

  4. pve三种操作方式

    pve三种操作方式 ==========================================================api方式 https://192.168.1.4:8006/p ...

  5. delphi之猥琐的webserver实现

    http://www.birdol.com/cainiaobiancheng/238.html delphi之猥琐的webserver实现 菜鸟编程  十五楼的鸟儿  7年前 (2009-01-01) ...

  6. 动态规划-递推-HDU2048

    传送门:http://acm.hdu.edu.cn/showproblem.php?pid=2048 全错=全不匹配 设当前全错的个数是dp[n] 那么前(n-1)个全错的话,第n个数就可以从前(n- ...

  7. PS总结

    1.ALT:取消工具选择状态2. photoshopcs6 出现因为智能对象不能直接进行编辑    解决方案:右击---图层名---栅格化图层3.Shift+F5:填充画布颜色 4.PS不能变换路径, ...

  8. webStom常用快捷键备忘

    Ctrl+W 选中代码,连续按会有其他效果 Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/…/ ) Ctrl+X 删除行Ctrl+D 复制行 ctrl+shift+ 箭头 上下移动块代 ...

  9. [BZOJ3622] 已经没有什么好害怕的了(dp+容斥)

    Description: ​ 有两个数组a和b,两两配对,求 \(a_i>b_i\) 的配对比 \(b_i>a_i\) 的配对多 \(k\) 个的方案数 \(k\le n\le 2000\ ...

  10. [LOJ3123] CTSC2019重复

    Description 给定一个⻓为 n 的字符串 s , 问有多少个⻓为 m 的字符串 t 满足: 将 t 无限重复后,可以从中截出一个⻓度为 n 且字典序比 s 小的串. m ≤ 2000 n ≤ ...