码迷,mamicode.com
首页 > 其他好文 > 详细

CODEVS 2835挖金币

时间:2017-05-18 22:14:13      阅读:236      评论:0      收藏:0      [点我收藏+]

标签:规则   log   pac   最大的   举例   sort   右上角   while   pre   

题目描述 Description

    这天,小X幸运地获得了一次进行挖金币游戏的机会,规则如下:

    在一个N*N的矩形里,有N*N个边长为1的正方形格子。在游戏中取左下角的格子坐标为(1,1),右上角为(N,N)。在游戏开始前,每一个格子中都会放入一枚金币,而当游戏开始时,每一个格子中的那一枚金币都会进行一次移动,移动后的横、纵坐标值将分别变为原横、纵坐标值每一位上的乘积。当有金币被移动出格子矩形时,将被游戏方收走。小X将被允许选取M个格子,他将获得他所选取的格子中所有的金币,而他对游戏中获得的金币数有一个期望值H。他想知道他最多能获得的金币数能否达到他的期望值。不过金币移动的让人眼花缭乱,小X算不过来了,他找到了你,希望你能用编程解决这个问题。

输入描述 Input Description

一行,三个正整数数N、M、H,以空格隔开,意义如题目中所说

输出描述 Output Description

一个或两个正整数数,以空格隔开

若小X最多能获得的金币数能达到期望值(即大于等于),则输出小X最多能获得的金币数以及金币总数能达到期望值的格子数的最小值

若小X最多能获得的金币数不能达到期望值(即小于),则输出金币数最多的那个格子中的金币数

样例输入 Sample Input

17 3 10

样例输出 Sample Output

12 3

数据范围及提示 Data Size & Hint

对于20%的数据,保证0<M≤N≤100

对于50%的数据,保证0<M≤N≤2000

对于70%的数据,保证0<M≤N≤5000

对于100%的数据,保证0<M≤N≤10000

举例,(123,456)处的金币将会被移动至(1*2*3,4*5*6)即(6,120)。

 

很明显这是一道模拟题。

暴力的话,会T掉,数据范围开二维数组的话会M掉。

所以我们需要换一种方式来思考  我们没有必要关注最大的格子的坐标,只需要知道最多的金币。

这样就把空间降下来了。

上代码:

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<algorithm>
 4 using namespace std;
 5 int coin[30050],p[30050];//p[i]代表1~n能变到i的数的个数(排序前) 
 6 int n,m,h,sum,minn,ans;
 7 bool flag;
 8 int cmp(int x,int y)
 9 {
10     return x>y;
11 }
12 int main()
13 {
14     cin>>n>>m>>h;
15     for(int i=1;i<=n;i++)
16     {
17         int tmp=i,tot=1;
18         while(tmp)
19         {
20             tot*=tmp%10;
21             tmp/=10;
22         }
23         p[tot]++;
24     }
25     sort(p+1,p+n+1,cmp);
26     for(int i=1;i<=150;i++)
27         for(int j=1;j<=150;j++)
28             coin[++sum]=p[i]*p[j];
29     sort(coin+1,coin+sum+1,cmp);
30     for(int i=1;i<=m;i++)
31     {
32         ans+=coin[i];
33         if(ans>=h && !flag)
34         {
35             minn=i;
36             flag=1;
37         }
38     }
39     if(flag)cout<<ans<<" "<<minn;
40     else cout<<coin[1];
41     return 0;
42 }

 

CODEVS 2835挖金币

标签:规则   log   pac   最大的   举例   sort   右上角   while   pre   

原文地址:http://www.cnblogs.com/1078713946t/p/6875777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!