腾讯9.6笔试

1.波谷序列,2.多项式求实解,3. 6个数的环求是否相同 4. 木棍期望题 5. 送餐题
1.思路 从后到前 ,维护最长上升子序列,从前到后,维护最长下降子序列,比较min*2
波谷序列的推导
https://blog.csdn.net/jay__bryant/article/details/81188557
3.排序后依次比较 思路是对的,flag没设置对
4.有公式 特例
5.distra
参考
https://www.nowcoder.com/discuss/501121?source_id=profile_create&channel=666
https://www.nowcoder.com/discuss/501154?channel=666&source_id=discuss_terminal_discuss_sim
作者:牛客384720617号
链接:https://www.nowcoder.com/discuss/501120?type=post&order=time&pos=&page=2&channel=666&source_id=search_post
来源:牛客网

1.#include

using namespace std;
int dp1[1010];
int dp2[1010];
int a[1010];
int n;
void lcs1() { // 递增
for(int i=n-1; i>0; --i) {
for(int j=i+1; j if(a[j]>a[i]) {
dp1[i] = max(dp1[i],dp1[j]+1);
}
}
}
}
void lcs2() { // 递减
for(int i=0; i for(int j=0; j if(a[j]>a[i]) {
dp2[i] = max(dp2[i],dp2[j]+1);
}
}
}
}

int main() {
int t;
cin >> t;
while(t–) {
cin >> n;
for(int i=0; i cin >> a[i];
}
lcs1();
lcs2();
mapmp;
int ans = 0;
for(int i=1; i if(mp.find(a[i]) != mp.end()) {
// cout << dp2[mp[a[i]]] << " " << dp1[i] << endl;
ans = max(ans,min(dp2[mp[a[i]]]+1,dp1[i]+1));
}
mp[a[i]] = i;
}
cout << ans*2 < }
return 0;
}
/**
3
9
5 4 3 2 1 2 3 4 5
5
1 2 3 4 5
14
87 70 17 12 14 86 61 51 12 90 69 89 4 65
*/
2.
https://www.oyohyee.com/post/hdu_5984
#include
#include

using namespace std;

int main()
{
int t;
scanf("%d", &t);
while(t–)
{
double a, b;
scanf("%lf %lf", &a, &b);
if(a<=b) printf(“0.000000\n”);
else
{
double ans = log(a) - log(b) + 1.0;
printf("%.6f\n", ans);
}
}
return 0;
}
3.
作者:zyx_xiao
链接:https://www.nowcoder.com/discuss/501121?source_id=profile_create&channel=666
来源:牛客网

#include
using namespace std;
int n, m;
int ans;
struct Node{
vector nums;
Node(){}
bool operator < (const Node a) const{
for(int i = 0 ; i < 6 ; i++){
if(nums[i] == a.nums[i]) continue;
return nums[i] < a.nums[i];
}
return true;
}
}a[100005];
int main()
{
int T;
scanf("%d", &T);
while(T–){
scanf("%d", &n);
for(int i = 0 ; i < n ; i++){
a[i].nums.resize(6);
for(int j = 0 ; j < 6 ; j++){
scanf("%d", &a[i].nums[j]);
}
sort(a[i].nums.begin(), a[i].nums.end());
}
sort(a, a+n);
bool flag = false;
for(int i = 0 ; i < n-1 ; i++){
bool f = true;
for(int j = 0 ; j < 6 ; j++){
if(a[i].nums[j] != a[i+1].nums[j]){
f = false;
break;
}
}
if(f){
flag = true;
break;
}
}
if(flag)
printf(“YES\n”);
else
printf(“NO\n”);
}
return 0;
}

你可能感兴趣的:(腾讯9.6笔试)