5月第二天
2022/5/3 6:14:13
本文主要是介绍5月第二天,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今天很悲催,晚上才完成了一些任务,又是在荒废中度过。。呜呜呜
单词打卡成功 √
今日算法练习 √
7-2 芬兰木棋
芬兰木棋(Mölkky,又称芬兰木柱)是源自芬兰的一项运动。哲哲将这个运动改造成了赛博朋克单人版,现在场上一开始有 N 根立起的小木棋(上面分别标有一个非负整数),哲哲投掷一根大木棋去击倒这些小木棋以获得分数。分数规则如下:
- 如果仅击倒 1 根木棋,则得木棋上的分数。
- 如果击倒 2 根或以上的木棋,则只得击倒根数的分数。(例如击倒 5 根,则得 5 分。)
哲哲固定站在 (0,0) 点上,四周放着若干个小木棋 (Xi,Yi),坐标均为整数。每次哲哲可以朝一个方向扔出大木棋,大木棋会打倒这个方向上离哲哲最近的 k 个小木棋。哲哲游戏水平很高超,所以这个 k 可以自由控制。
请问哲哲最多能拿多少分,在获得最多分数的情况下最少需要扔出多少次大木棋?
规则与真实规则有较大出入,真实游玩时请以国际莫尔基组织的规则为准
输入格式:
输入第一行是一个正整数 N (1 ≤ N ≤ 105),表示场上一开始有 N 个木棋。
接下来 N 行,每行 3 个整数 Xi,Yi,Pi,分别表示木棋放置在 (Xi,Yi),木棋上的分数是 Pi。坐标在 32 位整数范围内,分数为小于等于 1000 的正整数。
保证 (0,0) 点没有木棋,也没有木棋重叠放置。
输出格式:
输出一行两个数,表示最多分数以及获得最多分数最少需要投掷大木棋多少次。
输入样例:
11 1 2 2 2 4 3 3 6 4 -1 2 2 -2 4 3 -3 6 4 -1 -2 1 -2 -4 1 -3 -6 1 -4 -8 2 2 -1 999
输出样例:
1022 9 我的暴力代码 呜呜呜 只对了一个输出样例(o(╥﹏╥)o)
#include<bits/stdc++.h>
using namespace std;
struct Point{
int x;
int y;
int z;
//bool m=flase;
double xielv;
}p[10010];
struct Point2{
int x1;
int y1;
int z1;
double xielv1;
}p1[10010];
bool cmp(Point2 a,Point2 b)
{
return a.xielv1<b.xielv1;
//return true;
}
int j=0;
int sum=0;
int ans=0;
int main()
{
int n; cin>>n;
for(int i=1;i<=n;i++)
{
cin>>p[i].x>>p[i].y>>p[i].z;
}
for(int i=1;i<=n;i++)
{
if(p[i].z==1)
{
p[i].xielv=p[i].y/p[i].x;
p1[j++].x1=p[i].x;
p1[j].y1=p[i].y;
p1[j].z1=p[i].z;
p1[j].xielv1=p[i].xielv;
}
else
{sum+=p[i].z;
ans++;
}
}
// cout<<sum<<ans;
sort(p1+1,p1+j+1,cmp);
int jishu=0;
for(int i=2;i<=n;i++)
{
if(p1[i].xielv1!=p1[i-1].xielv1)
{
ans++;
sum+=jishu;
jishu=0;
}
else
jishu++;
}
cout<<sum<<" "<<ans<<endl;
return 0;
}
//太菜了 呜呜呜 明天再来解决!!!
这篇关于5月第二天的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-20测试人员都是画画大神,让我看看谁还不会用代码图?
- 2024-05-20年薪百万的程序员都在用的摸鱼方式……
- 2024-05-19永别了,微服务架构!
- 2024-05-15鸿蒙生态设备数量超8亿台
- 2024-05-13TiDB + ES:转转业财系统亿级数据存储优化实践
- 2024-05-09“2024鸿蒙零基础快速实战-仿抖音App开发(ArkTS版)”实战课程已上线
- 2024-05-09聊聊如何通过arthas-tunnel-server来远程管理所有需要arthas监控的应用
- 2024-05-09log4j2这么配就对了
- 2024-05-09nginx修改Content-Type
- 2024-05-09Redis多数据源,看这篇就够了