日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

CodeForces Goodbye 2017

發布時間:2024/9/15 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CodeForces Goodbye 2017 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

傳送門

A - New Year and Counting Cards

?題意

有n張牌,正面有字母,反面有數字

其中元音字母$a,e,o,i,u$的另一面必須對應$0,2,4,6,8$的偶數

其他字母可以和任意數字對應

問至少檢查幾次可以使這n張牌合法

?思路

由于偶數可以對應任何牌,但奇數必須對應不是元音的字母,所以所有的奇數要檢查

由于元音字母只可以對應偶數,其他字母可以對應任意的數,所以元音字母要檢查

記錄元音字母+奇數的個數

?代碼

1 #include<bits/stdc++.h> 2 using namespace std; 3 string s; 4 int main() 5 { 6 cin>>s; 7 int num=0; 8 for(int i=0;i<s.length();i++) 9 { 10 int a=s[i]-'0'; 11 if(((a&1)&&a>0&&a<10)||s[i]=='a'||s[i]=='e'||s[i]=='i'||s[i]=='o'||s[i]=='u') 12 num++; 13 } 14 printf("%d\n",num); 15 } View Code

?

B.New Year and Buggy Bot

?題意

給一個迷宮,其中$S$代表起點,$E$代表終點,$#$代表障礙物,#.#代表道路

$0,1,2,3$代表上下左右四個方位(順序不一定),

給定一個序列,問按照序列走,從起點到終點一共多少種走法

?思路

對$0,1,2,3$進行全排列,第1,,2,3,4個位置分別代表上下左右

記錄從起點到終點的方案數

?代碼

1 #include<bits/stdc++.h> 2 using namespace std; 3 char s[55][55]; 4 char t[105]; 5 int a[4]={0,1,2,3}; 6 int num=0; 7 int n,m; 8 struct node 9 { 10 int x,y; 11 }st,en; 12 void solve(int u,int d,int l,int r) 13 { 14 int len=strlen(t+1); 15 int x=st.x,y=st.y; 16 for(int i=1;i<=len;i++) 17 { 18 int now=t[i]-'0'; 19 if(now==u) 20 x--; 21 else if(now==d) 22 x++; 23 else if(now==l) 24 y--; 25 else if(now==r) 26 y++; 27 28 if(s[x][y]=='#'||x<1||x>n||y<1||y>m) 29 return ; 30 if(x==en.x&&y==en.y) 31 { 32 num++; 33 return ; 34 } 35 } 36 } 37 int main() 38 { 39 scanf("%d%d",&n,&m); 40 for(int i=1;i<=n;i++) 41 scanf("%s",s[i]+1); 42 for(int i=1;i<=n;i++) 43 { 44 for(int j=1;j<=m;j++) 45 { 46 if(s[i][j]=='S') 47 st={i,j}; 48 if(s[i][j]=='E') 49 en={i,j}; 50 } 51 } 52 scanf("%s",t+1); 53 do 54 { 55 solve(a[0],a[1],a[2],a[3]); 56 }while(next_permutation(a,a+4)); 57 58 printf("%d\n",num); 59 } View Code

?

C - New Year and Curling

?題意

有n個實心圓在無窮遠處,給出他們圓心的橫坐標

現從無窮遠處按照從1到n的順序,往x軸推圓

由于圓是實心的,所以不能相交

問推完后每個圓的圓心的y坐標

?思路

一個圓不能再推動的前提是

①推到了x軸

②與其他圓相切

?與其他圓相切的時候,只要一相切就不會再動了,也就是不能繞過相切早的去和晚的相切

可以假設可以都可以推到x軸,然后挨個去找前面可以和他相切的

注意找的是y坐標最大的,也就是相切最早的那一個

y坐標可以這么計算出 $h=(2r)^{2}-d^2$ (其中$d=a[i]-a[j]$) ,于是$b[j]=b[i]+h$

?代碼

1 #include<bits/stdc++.h> 2 using namespace std; 3 int n,r; 4 int L,R; 5 int a[1005]; 6 double b[1005]; 7 int main() 8 { 9 scanf("%d%d",&n,&r); 10 for(int i=1;i<=n;i++) 11 scanf("%d",a+i); 12 for(int i=1;i<=n;i++) 13 { 14 b[i]=1.0*r; 15 for(int j=1;j<i;j++) 16 { 17 int d=a[i]-a[j]; 18 b[i]=max(b[i],b[j]+sqrt(4*r*r-d*d)); 19 } 20 } 21 for(int i=1;i<=n;i++) 22 printf("%.10f ",b[i]); 23 } View Code

?

轉載于:https://www.cnblogs.com/MMMinoz/p/11616206.html

總結

以上是生活随笔為你收集整理的CodeForces Goodbye 2017的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。