360春招笔试算法题题解

本文详细解析了360春招笔试中涉及的三道算法题:跑步问题利用几何知识求解;剪气球串通过状态压缩动态规划解决;分金子问题采用区间动态规划策略分析。每题均附有解题思路和关键点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

A. 跑步(水)

题目描述

小明同学喜欢体育锻炼,他常常去操场上跑步。跑道是一个圆形,在本题中,我们认为跑道是一个半径为R的圆形,设圆心的坐标为原点(0,0)。
小明跑步的起点坐标为(R,0),他沿着圆形跑道跑步,而且一直沿着一个方向跑步。回到家后,他查看了自己的计步器,计步器显示他跑步的总路程为L。
小明想知道自己结束跑步时的坐标,但是他忘记自己是沿着顺时针方向还是逆时针方向跑的了。他想知道在这两种情况下的答案分别是多少。

题目解析:

我们都知道,L=Rθ,那么求出 θ来,x=rcosθ,y=rsinθ就好了。再把y反过来

#include <bits/stdc++.h>
using namespace std;

#define RE(x) freopen(x,"r",stdin)
#define WR(x) freopen(x,"w",stdout)
#define INF 0x3f3f3f3f
#define CLEAR(x) memset(x,0,sizeof(x))
#define pb push_back
#define mp make_pair

typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef pair<int,int> pii;

const int M = 1e9+7;
const double PI = acos(-1.0);
const double eps = 1e-8;

int main() {
    //RE("in.txt");WR("out.txt");</