zoukankan      html  css  js  c++  java
  • hdu 2018 多校 第六场

    史上最惨的惨剧,07高精度板子挂了,09忘记了说狼人是村名的人一定是狼人(

    01 BPM136

     1 /* ***********************************************
     2 Author        :BPM136
     3 Created Time  :2018/8/8 12:11:34
     4 File Name     :1001.cpp
     5 ************************************************ */
     6 
     7 #include<iostream>
     8 #include<cstdio>
     9 #include<algorithm>
    10 #include<cstdlib>
    11 #include<cmath>
    12 #include<cstring>
    13 #include<vector>
    14 using namespace std;
    15 
    16 const long double pi = acos(-1.0);
    17 
    18 int main() {
    19     int T;
    20     scanf("%d",&T);
    21     while(T--) {
    22         int a,b;
    23         scanf("%d%d",&a,&b);
    24         long long ans=double( pi*a+(long double)2.0*b ) * 1000000;
    25         printf("%.6f
    ",ans/1000000.0);
    26     }
    27     return 0;
    28 }
    View Code

    09 BPM136

      1 /* ***********************************************
      2 Author        :BPM136
      3 Created Time  :2018/8/8 16:19:14
      4 File Name     :1009.cpp
      5 ************************************************ */
      6 
      7 #include<iostream>
      8 #include<cstdio>
      9 #include<algorithm>
     10 #include<cstdlib>
     11 #include<cmath>
     12 #include<cstring>
     13 #include<iomanip>
     14 #include<bitset>
     15 #include<queue>
     16 #include<ctime>
     17 #include<set>
     18 #include<map>
     19 #include<vector>
     20 #include<cassert>
     21 #include<functional>
     22 #define pb push_back
     23 #define popb pop_back
     24 #define MID ((l+r)>>1)
     25 #define LSON (k<<1)
     26 #define RSON (k<<1|1)
     27 #define get(a,i) ((a)&(1<<(i-1)))
     28 #define PAU putchar(32)
     29 #define ENT putchar(10)
     30 #define clr(a,b) memset(a,b,sizeof(a))
     31 #define rep(_i,_a,_b) for(int _i=(_a);_i<=(_b);_i++)
     32 #define down(_i,_a,_b) for(int _i=(_a);_i>=(_b);_i--)
     33 #define FOR(_i,_b) for(int _i=1;_i<=(_b);_i++)
     34 #define efo(_i,_a) for(int _i=last[(_a)];_i!=0;_i=e[_i].next)
     35 #define Remax(a,b) if(b>a) a=b;
     36 #define Remin(a,b) if(b<a) a=b;
     37 #define SZ(x) ((int)(x).size())
     38 #define filein(x) freopen(#x".in","r",stdin)
     39 #define fileout(x) freopen(#x".out","w",stdout)
     40 #define file(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout);
     41 #define mkd(x) freopen(#x".in","w",stdout);
     42 #define setlargestack(x) int _SIZE=x<<20;char *_PPP=(char*)malloc(_SIZE)+_SIZE;__asm__("movl %0, %%esp
    " :: "r"(_PPP));
     43 #define END system("pause")
     44 #define read2(a,b) read(a),read(b)
     45 #define read3(a,b,c) read(a),read(b),read(c)
     46 #define readg(_x1,_y1,_x2,_y2) read(_x1),read(_y1),read(_x2),read(_y2)
     47 using namespace std;
     48 
     49 typedef long long ll;
     50 typedef double DB;
     51 typedef long double LD;
     52 typedef unsigned int  UI;
     53 typedef unsigned long long ULL;
     54 typedef vector<int> VI;
     55 typedef set<int> SI;
     56 typedef set<int , greater<int> > SIG;
     57 typedef map<int, int > MII;
     58 typedef map<int, int, greater<int> > MIIG;
     59 
     60 namespace fastIO{  
     61     #define BUF_SIZE 100000  
     62     #define OUT_SIZE 100000  
     63     //fread->read  
     64     bool IOerror=0;  
     65     inline char nc(){  
     66         static char buf[BUF_SIZE],*p1=buf+BUF_SIZE,*pend=buf+BUF_SIZE;  
     67         if (p1==pend){  
     68             p1=buf; pend=buf+fread(buf,1,BUF_SIZE,stdin);  
     69             if (pend==p1){IOerror=1;return -1;}  
     70             //{printf("IO error!
    ");system("pause");for (;;);exit(0);}  
     71         }  
     72         return *p1++;  
     73     }  
     74     inline bool blank(char ch){return ch==32||ch==10||ch==13||ch==9;}  
     75     inline bool enter(char ch){return ch==10||ch==13;}
     76     inline void read(int &x){  
     77         bool sign=0; char ch=nc(); x=0;  
     78         for (;blank(ch);ch=nc());  
     79         if (IOerror)return;  
     80         if (ch==45)sign=1,ch=nc();  
     81         for (;ch>=48&&ch<=57;ch=nc())x=x*10+ch-48;  
     82         if (sign)x=-x;  
     83     }  
     84     inline void read(ll &x){  
     85         bool sign=0; char ch=nc(); x=0;  
     86         for (;blank(ch);ch=nc());  
     87         if (IOerror)return;  
     88         if (ch==45)sign=1,ch=nc();  
     89         for (;ch>=48&&ch<=57;ch=nc())x=x*10+ch-48;  
     90         if (sign)x=-x;  
     91     }  
     92     inline void read(double &x){  
     93         bool sign=0; char ch=nc(); x=0;  
     94         for (;blank(ch);ch=nc());  
     95         if (IOerror)return;  
     96         if (ch==45)sign=1,ch=nc();  
     97         for (;ch>=48&&ch<=57;ch=nc())x=x*10+ch-48;  
     98         if (ch==46){  
     99             double tmp=1; ch=nc();  
    100             for (;ch>=48&&ch<=57;ch=nc())tmp/=10.0,x+=tmp*(ch-48);  
    101         }  
    102         if (sign)x=-x;  
    103     }  
    104     inline void read(char *s){  
    105         char ch=nc();  
    106         for (;blank(ch);ch=nc());  
    107         if (IOerror)return;  
    108         for (;!blank(ch)&&!IOerror;ch=nc())*s++=ch;  
    109         *s=0;  
    110     }  
    111     inline void read(char *s,bool f) {
    112         char ch=nc();
    113         for (;blank(ch);ch=nc());
    114         if(IOerror)return;
    115         for(;!enter(ch)&&!IOerror;ch=nc())*s++=ch;
    116         *s=0;
    117     }
    118     inline void read(char &c){  
    119         for (c=nc();blank(c);c=nc());  
    120         if (IOerror){c=-1;return;}  
    121     } 
    122 #undef OUT_SIZE  
    123 #undef BUF_SIZE  
    124 }; using namespace fastIO;
    125 
    126 const int N = 100005;
    127 
    128 VI E[N];
    129 
    130 int F_f[N];
    131 bool F_c[N];
    132 
    133 int F_find(int x) {
    134     if(F_f[x]==x) return x;
    135     return F_f[x]=F_find(F_f[x]);
    136 }
    137 
    138 int fa[N],ty[N];
    139 int n;
    140 
    141 bool v[N];
    142 
    143 void dfs(int x) {
    144     v[x]=1;
    145     for(auto v : E[x]) {
    146         dfs(v);
    147     }
    148 }
    149 
    150 int main() {
    151     setlargestack(64);
    152     freopen("in","r",stdin);
    153     freopen("1.out","w",stdout);
    154     int T;
    155     read(T);
    156     while(T--) {
    157         read(n);
    158         int x;
    159         char op[11];
    160         for(int i=1;i<=n;i++) E[i].clear();
    161         for(int i=1;i<=n;i++) {
    162             read2(x,op);
    163             fa[i]=x;
    164             if(op[0]=='w') ty[i]=1; else ty[i]=2;
    165         }
    166         for(int i=1;i<=n;i++) F_f[i]=i, F_c[i]=0;
    167 
    168         for(int i=1;i<=n;i++) if(ty[i]==2) {
    169             int x=i, y=fa[i];
    170             E[y].push_back(x);
    171             int dx=F_find(x), dy=F_find(y);
    172             if(dx!=dy) {
    173                 if(F_c[dx]==1) F_f[dy]=dx; else
    174                 if(F_c[dy]==1) F_f[dx]=dy; else F_f[dx]=dy;
    175             } else F_c[dx]=1;
    176         }
    177         int ans1=0,ans2=0;
    178         memset(v,0,sizeof(v));
    179         for(int i=1;i<=n;i++) if(ty[i]==1) {
    180             int a=i, b=fa[i];
    181             int dx=F_find(b);
    182             if(F_c[dx]) continue;
    183             if(dx==a) dfs(b);
    184         }
    185         for(int i=1;i<=n;i++) if(v[i]) ans2++;
    186         cout<<"0 "<<ans2<<endl;
    187     }
    188     return 0;
    189 }
    View Code

    12 小洛洛

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 #include <cmath>
     5 #include <cstdlib>
     6 #include <algorithm>
     7 using namespace std;
     8 
     9 template<int BI, int BO>
    10 struct IO_ {
    11     char bufi[BI + 1], *qi, bufo[BO], *qo;
    12     IO_(): qi(bufi + BI), qo(bufo) {}
    13     ~IO_() { o_(EOF); }
    14     int i_() {
    15         if(qi == bufi + BI) bufi[fread(bufi, 1, BI, stdin)] = '', qi = bufi;
    16         return *qi ? *qi++ : EOF;
    17     }
    18     void o_(int c) {
    19         if(c != EOF) *qo++ = c;
    20         if(qo == bufo + BO || (c == EOF && qo != bufo))
    21             fwrite(bufo, qo - bufo, 1, stdout), qo = bufo;
    22     }
    23     IO_ &operator>>(int &ret) {
    24         ret = 0; int c;
    25         while(isspace(c = i_()));
    26         bool bm = c == '-' ? (c = i_(), true) : false;
    27         while(ret = ret * 10 - (c - '0'), isdigit(c = i_()));
    28         if(!bm) ret = -ret;
    29         return *this;
    30     }
    31     IO_ &operator>>(char *p) {
    32         int c; while(isspace(c = i_()));
    33         do *p++ = c; while(!isspace(c = i_()));
    34         *p = '';
    35         return *this;
    36     }
    37     IO_ &operator<<(char c) { return o_(c), *this; }
    38     IO_ &operator<<(const char *p) { while(*p) o_(*p++); return *this; }
    39     IO_ &operator<<(int x) {
    40         char s[12] = {}, *p = s + 11;
    41         bool bm = x < 0 ? true : (x = -x, false);
    42         while(*--p = '0' - x % 10, x /= 10);
    43         if(bm) *--p = '-';
    44         while(*p) o_(*p++);
    45         return *this;
    46     }
    47 };
    48 
    49 const double g = 9.8;
    50 const double EPS = 1e-9;
    51 
    52 double kref_(double k, double k1) {
    53   if(fabs(k - (-1.0)) < EPS)
    54     return 1.0 / k1;
    55   double k2 = 2.0 * k / (1.0 - k * k);
    56   if(1.0 / k1 == 0.0) // inf
    57     return -1.0 / k2;
    58   return (k2 - k1) / (1.0 + k2 * k1);
    59 }
    60 
    61 int calc_(double k, double x, double vk, double v) {
    62   if(x > 0.0)
    63     return 0;
    64   double vk_ = kref_(k, vk);
    65   double vx = v / sqrt(1.0 + vk_ * vk_), vy = vx * vk_;
    66   double t = 2.0 / g * (vy - k * vx);
    67   double vk__ = (vy - g * t) / vx;
    68   return 1 + calc_(k, x + vx * t, vk__, hypot(vx, vy - g * t));
    69 }
    70 
    71 int main() {
    72   auto &io = *new IO_<0x10000, 0x10000>;
    73 
    74   int t; io >> t;
    75   while(t--) {
    76     int a, b, x, y;
    77     io >> a >> b >> x >> y;
    78     double k = (double)b / -a;
    79     if(y < k * x - EPS)
    80       io << "0
    ";
    81     else
    82       io << calc_(k, x, 1.0 / 0.0, sqrt(2 * g * (y - k * x))) << '
    ';
    83   }
    84 
    85   delete &io;
    86   return 0;
    87 }
    View Code
  • 相关阅读:
    阅读笔记第六次
    阅读笔记第五章
    阅读笔记第四章
    阅读笔记第三章
    软件需求分析课堂讨论
    阅读笔记第二篇
    阅读笔记五
    阅读笔记五
    阅读笔记三
    阅读笔记二
  • 原文地址:https://www.cnblogs.com/MyGirlfriends/p/9445918.html
Copyright © 2011-2022 走看看