1.給乙個半徑為r的圓,圓心是(0,0),開始位於(r,0),分別求從始點順時針和逆時針走長度為l的終點座標
有可能走多圈,先處理成走一圈的形式,然後判是不是四個斷點,如果是則輸出
然後把l處理到第一象限,與x軸形成的夾角是l/r,y點座標就是r*sin(l/r),那麼x=sqrt(r*r-x*x)
#includeusingview codenamespace
std;
typedef
long
long
ll;const
int maxn=1e5+5
;const
double pi=acos(-1
);const
double esp=1e-8
;double
l,r,s;
void solve(double &x,double& y,double
l)int
main()
else
if(abs(l-(s/4))<=esp)
else
if(abs(l-(s/4)*2)<=esp)
else
if(abs(l-(s/4)*3)<=esp)
//假設順時針的話,然後判斷在哪個象限
double
x,y;
if(l
))
else
if(l
))
else
if(l
)
else
printf(
"%.3f %.3f\n
",x,-y);
printf(
"%.3f %.3f\n
",x,y);
return0;
}
2.給乙個長度是n的串,串中只有1-9這9個數字,求把這個串拆分若干個字串,每個字串中沒有重複的數字,輸出有多少種分割方法,答案mod1000000007
做選擇做的有點緊張,讀錯題了,簡單dp,dp[i]表示分割前i個的種類,如果從j分割,那麼j以及前面的是乙個分割方法,(j+1)-i是乙個分割,那麼dp[i]=sigma(dp[j])j表示從i往回走,能走到的無重複的最遠距離
簡單題,血虧
#include#includeview code#include
using
namespace
std;
typedef
long
long
ll;const
int maxn=1e5+5
;const
int mod=1000000007
;int a[maxn],v[10
];int
dp[maxn];
intmain()
memset(v,
0,sizeof
(v));
}printf(
"%d\n
",dp[n]);
return0;
}
3.有乙個雙端佇列,兩個海盜分金子,每人輪流在取乙個金子,可以在左端或者右端每次取乙個金子,兩人都會做最有選澤,輸出先手和後手的得到的最多金子
博弈dp,記憶化搜尋就能解,dp[i][j][2],表示i-j之間,第乙個人個第二個人能得到的最佳答案
#includeusingnamespace
std;
typedef
long
long
ll;const
int maxn=505
;int
a[maxn];
int dp[maxn][maxn][2
];typedef pair
pr;intt,n;
void dfs(int l,int r,int
cnt)
dfs(l+1,r,cnt^1
); dfs(l,r-1,cnt^1
);
int l=dp[l+1][r][cnt]+a[l],r=dp[l][r-1][cnt]+a[r];
//coutr)
else
}int
main()
return0;
}
360筆試18年程式設計題第四題
小明有乙個花園,花園裡面一共有m朵花,對於每一朵花,都是不一樣的,小明用1 m中的乙個整數表示每一朵花。他很喜歡去看這些花,有一天他看了n次,並將n次他看花的種類是什麼按照時間順序記錄下來。記錄用a i 表示,表示第i次他看了a i 這朵花。小紅很好奇,她有q個問題,問 l,r 的時間內,小明一共看...
360筆試 春招
沫璃邀請她的朋友參加週末的派對。沫璃買了3種顏色的氣球,現在她要有這些氣球來裝飾餐桌,每個餐桌只用恰好3個氣球裝飾,要求3個氣球的顏色不能完全一樣,可以是2種或者1種顏色。沫璃想知道這些氣球最多能裝飾多少張餐桌。輸入 第一行乙個數t t 100 表示資料組數。對於每組資料,第一行3個整數r,g,b,...
筆試程式設計題 2012 3 22筆試
乙個筆試題目 n個人圍成乙個圈,第乙個人從1開始遞增報數,凡是報到3的倍數 包括3 時,該人退出,隨後的人接著再繼續報數,直到最後只剩下乙個人為止,求最後剩下的這個人在原對中的編號。思路 用陣列儲存n個人,開始陣列元素全部初始化為1,表示所有的人都在隊中,然後迴圈遍歷陣列,凡是遇到能整除3的位置的元...