• Codeforces 975D Ghosts 【math】


    打了两次cf里的比赛,发现cf比较喜欢考数学题。一开始看到这道题没有思路,因为总想dp,图论,贪心这些东西。如果下次再没有思路,可以从数学的角度入手。

    题解说的比较清楚:

    ===2018.9.4===又看了遍这题,在看题解前虽然知道是数学题,但仍然一点思路都没有

    关键在于不知道怎么建模。

    题解里的突破口在于想到两个鬼相遇指的是x坐标和y左边一样,然后想到让x坐标相等的时间=y坐标相等的时间,

    然后再化简到等号一边只有一个鬼的参数的形式。

    (注意:一个鬼的移动轨迹(一条直线)与另一个鬼的移动轨迹有【相交】不代表他们能吓到彼此,因为他们到达那个相交的点的时间可能是不同的。)

     1 #include<iostream>
     2 #include<map>
     3 #define ll long long
     4 #define MAXN 200000
     5 using namespace std;
     6 
     7 ll n,a,b,ans,parallel;
     8 map<long long,int> m;
     9 map< pair<int,int>,int> p;
    10 int main(){
    11     cin>>n>>a>>b;
    12     for(int i=1;i<=n;i++){
    13         int x,Vx,Vy; scanf("%d%d%d",&x,&Vx,&Vy);
    14         //每个维护出来a*Vx-Vy
    15         ll key = a*Vx-Vy;
    16         ans+=m[key];//相同key的能collide 
    17         m[a*Vx-Vy]++;
    18         parallel+=p[ make_pair(Vx,Vy) ];
    19         p[  make_pair(Vx,Vy)  ]++;
    20     }
    21     cout<<(ans-parallel)*2;
    22     
    23     return 0; 
    24 }
  • 相关阅读:
    Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(六)之Initialization & Cleanup
    ValidForm.js的使用注意点
    我的第一个敏捷项目总结
    七月在线机器学习项目
    吴恩达机器学习
    emoji情感分类器
    序列模型实践工程
    序列模型-NLP和词嵌入
    吴恩达深度学习
    序列模型
  • 原文地址:https://www.cnblogs.com/ZhenghangHu/p/8982277.html
Copyright © 2020-2023  润新知