【水】弱化版魔术球问题

卖个萌

这是一个弱化版的魔术球问题,本来都不好意思丢上来。。。但是这几天都在看代码没有写东西,还是丢一下凑凑数吧。

不要问我正解哪里进,我也没找到,反正百度魔术球问题第一页都是错的。所有代码都跑不出结果。600这么low的数据没有一个所谓AC代码可以跑的过(似乎我代码加了输出方案也过不去。。)。所以后面我的数据600就是用没有加输出方案的我的弱弱的程序跑的。。。

我的代码加了输出方案丢在最后附数据的文章里面了。。错的,不过我会尽快改对的。。。。。

魔术球问题弱化版(ball.c/.cpp/.pas)

题目描述

假设有 n 根柱子,现要按下述规则在这 n 根柱子中依次放入编号为 1,2,3,…的球。

(1)每次只能在某根柱子的最上面放球。

(2)在同一根柱子中,任何 2 个相邻球的编号之和为完全平方数。

试设计一个算法,计算出在 n 根柱子上最多能放多少个球。例如,在 4 根柱子上最多可放 11 个球。

对于给定的 n,计算在 n 根柱子上最多能放多少个球。

输入描述

第 1 行有 1 个正整数 n,表示柱子数。

输出描述

一行表示可以放的最大球数

样例输入

4

样例输出。

11

题目限制(为什么说弱化版就在这里)

N<=60,时限为3s;比起原题还有弱化在不用打出方案,方案太坑了

思路 thinkings

这么小的范围60。。。我真心觉得可以打表。。为了尊重出题人吴桐,还是写个贪心吧。。

(QaQ:什么?你要我写网络流+最小路径覆盖?这只有60好吗。。n^5算法都可以过。。。)

贪心是这样滴:

第一个球球当然是放在第一个柱子里面了(柱子里面怎么能放球?(*^__^*) )

以后每一个球都从第一个柱子开始判断是否能放进去,如果可以的话就放啦,如果不行就新开一个啦。。不能再开就完啦。

代码 codes

#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cmath>
#include<cstring>
using namespace std;
int board[999999]={0};
int wutong(int x)
{
    double m=sqrt(x);
    if (int(m)==m) {return 1;} else {return 0;}
}
int main()
{
    int n;
    cin>>n;
    int all=1; int ans=2;board[1]=1;
    while (all<=n)
    {
       int flag=0;
       for (int t=1;t<=all;t++)
           if (wutong(board[t]+ans)==1) {flag=1;board[t]=ans;break;}
       if ((flag==0)&&(all<n)) {all++;board[all]=ans;flag=1;}
       if (flag==0) break;
       ans++;
    }
    cout<<ans-1<<endl;
    return 0;
}

反思

1.看数据范围,小数据可以打表。。。

2.memset是需要时间的。。int a[99999999]={0}不需要时间。。。。

数据

不给数据似乎要打我。。

那我给个地址吧

http://www.cnblogs.com/seekdreamer/articles/3813891.html...

其中代码是错的。。。不过我一定会尽快改对的。。

【水】弱化版魔术球问题,布布扣,bubuko.com

时间: 2024-10-24 22:27:37

【水】弱化版魔术球问题的相关文章

魔术球问题弱化版 题解

此文为博主原创题解,转载时请通知博主,并把原文链接放在正文醒目位置. 我也不知道这个问题是哪里来的,所以没有题目链接...但是文末会给出几组数据. 题目描述 假设有 n 根柱子,现要按下述规则在这 n 根柱子中依次放入编号为 1,2,3,…的球. (1)每次只能在某根柱子的最上面放球. (2)在同一根柱子中,任何 2 个相邻球的编号之和为完全平方数. 试设计一个算法,计算出在 n 根柱子上最多能放多少个球. 例如,在 4 根柱子上最多可放 11 个球. 对于给定的 n,计算在 n 根柱子上最多能

7.4 魔术球问题弱化版

题目描述 假设有 n 根柱子,现要按下述规则在这 n 根柱子中依次放入编号为 1,2,3,-的球. (1)每次只能在某根柱子的最上面放球. (2)在同一根柱子中,任何 2 个相邻球的编号之和为完全平方数. 试设计一个算法,计算出在 n 根柱子上最多能放多少个球.例如,在 4 根柱子上最多可放 11 个 对于给定的 n,计算在 n 根柱子上最多能放多少个球. 输入描述 第 1 行有 1 个正整数 n,表示柱子数. 输出描述 一行表示可以放的最大球数 4 样例输出. 样例输入 11 题目限制(为什么

POWOJ 1739: 魔术球问题 DAG最小路径覆盖转最大流

1739: 魔术球问题 题意: 假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为1,2,3,...的球. (1)每次只能在某根柱子的最上面放球. (2)在同一根柱子中,任何2个相邻球的编号之和为完全平方数. 试设计一个算法,计算出在n根柱子上最多能放多少个球.对于给定的n,计算在n根柱子上最多能放多少个球. tags: 对大佬来说应该是很素的一道题,但某还是花了好多时间才做出来.. 一开始连建图都有点懵,然后最小路径还是新概念,最大匹配也不太懂,最大流倒是会一点. 然后要打印答案,也不

【网络流24题】魔术球问题

P1226 - [网络流24题]魔术球问题 Description 假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为 1,2,3,4......的球. (1)每次只能在某根柱子的最上面放球. (2)在同一根柱子中,任何2个相邻球的编号之和为完全平方数. 试设计一个算法,计算出在n根柱子上最多能放多少个球.例如,在4 根柱子上最多可 放11个球. ′编程任务: 对于给定的n,计算在 n根柱子上最多能放多少个球. Input 第1 行有 1个正整数n,表示柱子数. Output 第一行是球

cogs_396_魔术球问题_(最小路径覆盖+二分图匹配,网络流24题#4)

描述 http://cojs.tk/cogs/problem/problem.php?pid=396 连续从1开始编号的球,按照顺寻一个个放在n个柱子上,\(i\)放在\(j\)上面的必要条件是\(i+j\)是一个完全平方数.问做多能放到几号球. 分析 cogs是简化版,我在网上找了个完整版的测试数据,要求输出方案... 求最大放几号球不方便,我们考虑枚举最大的球号,计算最少需要多少柱子. 我们对于满足\(j<i\)且\(i+j\)是一个完全平方数的\(i,j\),从\(j\)向\(i\)连一条

魔术球问题 2011-12-29

算法实现题8-4 魔术球问题(习题 8-14) ´问题描述: 假设有n根柱子,现要按下述规则在这n根柱子中依次放入编号为 1,2,3,¼的球. (1)每次只能在某根柱子的最上面放球. (2)在同一根柱子中,任何2个相邻球的编号之和为完全平方数. 试设计一个算法,计算出在n根柱子上最多能放多少个球.例如,在4 根柱子上最多可放11个球. ´编程任务: 对于给定的n,计算在 n根柱子上最多能放多少个球. ´数据输入: 由文件input.txt提供输入数据.文件第1 行有 1个正整数n,表示柱子数.

hdu 1829 并查集(食物链的弱化版)

http://acm.hdu.edu.cn/showproblem.php?pid=1829 Problem Description Background  Professor Hopper is researching the sexual behavior of a rare species of bugs. He assumes that they feature two different genders and that they only interact with bugs of

【多题合集】网络流24题练习(更新至魔术球问题)

飞行员配对问题(仅求方案总数) 传送门 思路:二分图后dinic走起,各边容量为1 代码: #include<bits/stdc++.h> #define inf 0x7ff using namespace std; int ans,n,n1,s,t,tot=1; int first[105],dis[105],up[105]; bool vis[105]; queue<int>q; struct edge { int u,v,next,w; }e[500]; void add(i

LiberOJ 6003. 「网络流 24 题」魔术球 贪心或者最小路径覆盖

6003. 「网络流 24 题」魔术球 内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:Special Judge 上传者: 匿名 提交提交记录统计讨论测试数据 题目描述 假设有 n nn 根柱子,现要按下述规则在这 n nn 根柱子中依次放入编号为 1,2,3,4,? 1, 2, 3, 4, \cdots1,2,3,4,? 的球. 每次只能在某根柱子的最上面放球. 在同一根柱子中,任何 2 22 个相邻球的编号之和为完全平方数. 试设计一个算法,计算出在