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\n",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\n" :: "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!\n");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)] = '\0', 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 = '\0';
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\n";
81     else
82       io << calc_(k, x, 1.0 / 0.0, sqrt(2 * g * (y - k * x))) << '\n';
83   }
84 
85   delete &io;
86   return 0;
87 }
View Code

猜你喜欢

转载自www.cnblogs.com/MyGirlfriends/p/9445918.html