XX OpenCup, GP of Eurasia

A.

签到

XX OpenCup, GP of Eurasia

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n,m,k,r,c;
 4 int Ans[50005];
 5 int main()
 6 {
 7     scanf("%d%d%d%d%d",&n,&m,&k,&r,&c);
 8     for(int i=1;i<=n;++i)
 9         for(int j=1;j<=m;++j)
10         {
11             int x;
12             scanf("%d",&x);
13             if(x)Ans[x+abs(r-i)+abs(c-j)]++;
14         }
15     int tot=0;
16     for(int i=1;i<=50000;++i)if(Ans[i])tot++;
17     printf("%dn",tot);
18     for(int i=1;i<=50000;++i)if(Ans[i])printf("%d %dn",i,Ans[i]);
19 }

View Code

C.

签到

XX OpenCup, GP of Eurasia

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int T;
 4 int a[8],d;
 5 int main()
 6 {
 7     scanf("%d",&T);
 8     while(T--)
 9     {
10         for(int i=0;i<7;++i)
11         {
12             scanf("%d",&a[i]);
13         }
14         scanf("%d",&d);
15         int j=d;
16         vector<int> A;
17         A.push_back(j);
18         for(int i=d-1;i>=0;--i)if(a[i]<a[j])A.push_back(i),j=i;
19         sort(A.begin(),A.end());
20         for(int x:A)printf("%d ",x);
21         puts(""); 
22     }
23 }

View Code

G.

物理题

对于每个折线上的点以其和起点终点求个抛物线

但这不一定是最优的

另一种可能的最优解可以通过斜抛运动的方程变形,以(v_0=f(theta))求导得出,角度是(tan(2theta)=-frac{x_n}{y_n})

然后对每个抛物线判一下合法取个最优

XX OpenCup, GP of Eurasia

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 const double eps = 1e-5;
 4 struct Point
 5 {
 6     double x,y;
 7     Point(double X=0,double Y=0):x(X),y(Y){}
 8 }p[100005];
 9 int m,n;
10 double basx,basy,tx,ty;
11 int main()
12 {
13     scanf("%d",&m);
14     scanf("%lf%lf",&basx,&basy);
15     for(int i=2;i<m;++i)
16     {
17         double x,y;
18         scanf("%lf%lf",&x,&y);
19         p[++n]=Point(x-basx,y-basy);
20     }
21     scanf("%lf%lf",&tx,&ty);
22     tx-=basx;ty-=basy;
23     long double mna=1e10,tb=0;
24     for(int i=1;i<=n;++i)
25     {
26         long double xn=tx,yn=ty,xi=p[i].x,yi=p[i].y;
27         long double a=(yn*xi-yi*xn)/(xi*xn*(xn-xi));
28         if(a>0)continue; 
29         if(a<mna)
30         {
31             mna=a;
32             tb=(xn*xn*yi-yn*xi*xi)/(xn*xi*(xn-xi));
33         }
34     }
35     long double B;
36     if(abs(ty)>eps)
37     {
38         if(tx*ty<0)
39         {
40             long double si=atan(-tx/ty)/2;
41             B=tan(si);
42         }
43         else
44         {
45             long double si=(atan(-tx/ty)+acos(-1))/2;
46             B=tan(si);
47         }
48     }
49     else B=1;
50     long double A=(ty-B*tx)/(tx*tx);
51     bool yes=1;
52     for(int i=1;i<=n;++i)
53     {
54         long double x=p[i].x;
55         if((long double)p[i].y>A*x*x+B*x){yes=0;break;}
56     }
57     if(yes)
58     {
59         //long double v=min(sqrt(-5*(1+tb*tb)/mna),sqrt(-5*(1+B*B)/A));
60         long double v=sqrt(-5*(1+B*B)/A);
61         printf("%.10fn",(double)v);
62     }
63     else
64     {
65         long double v=sqrt(-5*(1+tb*tb)/mna);
66         printf("%.10fn",(double)v);
67     }
68 }

View Code

I.

注意字典序

XX OpenCup, GP of Eurasia

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n,k;
 4 string change(int x)
 5 {
 6     string c;c.clear();
 7     while(x)
 8     {
 9         c.push_back(x%10+'0');
10         x/=10;
11     }
12     reverse(c.begin(),c.end());
13     return c;
14 }
15 bool cmp1(int A,int B)
16 {
17     return change(A)<change(B);
18 }
19 bool cmp(pair<int,int> A,pair<int,int> B)
20 {
21     return make_pair(change(A.first),change(A.second))<make_pair(change(B.first),change(B.second));
22 }
23 int a[100005];
24 int main()
25 {
26     scanf("%d%d",&n,&k);
27     if((n-1)%k==0)
28     {
29         puts("Yes");
30         for(int i=1;i<=n;++i)a[i]=i;
31         sort(a+1,a+n+1,cmp1);
32         int cnt=1;
33         for(int i=1;i<=(n-1)/k;++i)
34         {
35             for(int j=1;j<=k;++j)printf("%d %d ",a[i],a[++cnt]);
36         }
37     }
38     else puts("No");
39 }

View Code

 

原文链接: https://www.cnblogs.com/uuzhateteee/p/12667667.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    XX OpenCup, GP of Eurasia

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/341029

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月2日 上午12:52
下一篇 2023年3月2日 上午12:53

相关推荐