• CF800


    连接:http://codeforces.com/contest/800

    A:Voltage Keepsake

    二分

    边界不会求,试了几次-_-||

     1 #include<cstdio>
     2 #include<cstring>
     3 const int maxn=100010;
     4 double a[maxn],b[maxn];
     5 int n;
     6 double p;
     7 bool check(double m)
     8 {
     9     double ans=0;
    10     for(int i=0;i<n;i++)
    11        {
    12            double temp=a[i]*m-b[i];
    13            if(temp>1e-5) ans+=temp/p;
    14 
    15        }
    16     return (m-ans)>1e-5;
    17 }
    18 int main()
    19 {
    20     double re=0;
    21     scanf("%d%lf",&n,&p);
    22     for(int i=0;i<n;i++)
    23     {
    24         scanf("%lf%lf",&a[i],&b[i]);
    25         re+=a[i];
    26     }
    27     if(re<=p) {puts("-1");return 0;}
    28     double l=0.0,r=0x3f3f3f3f3f3f; //据说r=1e10
    29     while((r-l)>1e-6)
    30     {
    31 
    32         double m=(l+r)/2.0;
    33         if(check(m)) l=m;
    34         else r=m;
    35     }
    36 
    37         printf("%.4lf
    ",l);
    38         return 0;
    39 
    40 }
    View Code

    B:Volatile Kite

    凸多边形->凹多边形

    也不会,几何这方面很少做题。

     1 #include<cstdio>
     2 #include<cstring>
     3 #include<cmath>
     4 #include<algorithm>
     5 using namespace std;
     6 struct node
     7 {
     8     double x,y;
     9 }p[2000];
    10 node sub(node i,node j)
    11 {
    12     return node{i.x-j.x,i.y-j.y};
    13 }
    14 double mul(node i,node j)
    15 {
    16     return i.x*j.y-i.y*j.x;
    17 }
    18 
    19 double getdis(node i,node j)
    20 {
    21     return sqrt((i.x-j.x)*(i.x-j.x)+(i.y-j.y)*(i.y-j.y));
    22 }
    23 
    24 int main()
    25 {
    26     int n;
    27     scanf("%d",&n);
    28     for(int i=0;i<n;i++)
    29         scanf("%lf%lf",&p[i].x,&p[i].y);
    30     double ans=0x3f3f3f3f;
    31     for(int i=0;i<n;i++)
    32     {
    33         double area=mul(sub(p[(i+2)%n],p[i]),sub(p[(i+1)%n],p[i]))/2.0;
    34         ans=min(ans,area/getdis(p[i],p[(i+2)%n]));
    35 
    36     }
    37     printf("%.7lf",ans);
    38 }
    View Code

    剩下的以后再补吧,,现在看有点吃力。。。

     
  • 相关阅读:
    【BZOJ 2565】 最长双回文串
    【BZOJ 2160】 拉拉队排练
    【POI 2010】 Antisymmetry
    【HDU 3068】 最长回文
    【POJ 3974】 Palindrome
    【POJ 2503】 Babelfish
    【POJ 3349】 Snowflake Snow Snowflakes
    【BZOJ 2457】 双端队列
    根文件系统的构建与分析(一)之流程分析
    Linux MTD系统剖析
  • 原文地址:https://www.cnblogs.com/yijiull/p/6793368.html
Copyright © 2020-2023  润新知