D-Drop Voicing
題意及分析
題目大意就是給定了兩種操作,求其中一種操作使用的次數,
給定一個任意數字排列,要求最后使其順序排列,即1,2,3,4…n,兩個操作一個是把倒數第二個數放到第一位,第二種操作是把第一個數放到最后一位,連續使用一種操作一次操作,
需要數第一種操作使用次數,
代碼(AC)
#include<bits/stdc++.h>
using namespace std;
const int N = 505;
int a[2*N],f[2*N];
inline int inc_sub(int l, int r) {
fill(f+l, f+r, 1);
for(int i = l; i < r; i++) {
for(int j = l; j < i; j++) {
if(a[j] < a[i]) f[i] = max(f[i], f[j] + 1);
}
}
int m = 0;
for(int i = l; i < r; i++)
m = max(m, f[i]);
return m;
}
int main() {
//freopen("./1.in","r",stdin);
int n;
scanf("%d",&n);
for(int i = 1; i <= n; i++) {
int t;
scanf("%d",&t);
a[i] = a[i+n] = t;
}
int ans = 0x3f3f3f3f;
for(int i = 1; i <= n; i++) {
memset(f, 0, sizeof(f));
ans = min(ans , n - inc_sub(i, i+n));
}
cout<<ans<<endl;
return 0;
}
I-Hard Math Problem
題意及分析
答案就是2/3,貼一張圖解釋,因為是無窮大不存在邊界的,所以看中間位置,看邊緣位置無法理解的

代碼
#include<bits/stdc++.h>
using namespace std;
int main() {
printf("0.666667\n");
return 0;
}
F-DPS
題意與分析
根據給定的數字和公式
輸出圖案,si決定這個圖案的長度,唯一值得注意的點就是向上取整怎么做
代碼(AC)
#include<bits/stdc++.h>
using namespace std;
#define ll long long
const int N = 100 + 5;
ll a[N], b[N];
int main() {
int n;
while(scanf("%d",&n) != EOF) {
ll m = 0;
for(int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
m = max(a[i], m);
}
for(int i = 1; i <= n; i++)
b[i] = (50*a[i] + m - 1) / m;//向上取整
for(int i = 1; i <= n; i++) {//n個資料
for(int j = 1; j <= 3; j++) {//分別代表三行
if(j == 2) {
for(int k = 1; k <= b[i]+2; k++) {
if(k == 1 || k == b[i]+2)
cout<<"|";
else if(a[i] == m && k == b[i] + 1)
cout<<"*";
else
cout<<" ";
}
cout<<a[i]<<endl;
}
else {
for(int k = 1; k <= b[i]+2; k++) {
if(k == 1 || k == b[i]+2)
cout<<"+";
else
cout<<"-";
}
cout<<endl;
}
}
}
}
return 0;
}
E-Bogo Sort
題意及分析
說到底就是大數的處理
代碼(AC)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/221148.html
標籤:其他
上一篇:跟奧巴馬一起畫方塊
下一篇:3D曲面重建之移動最小二乘法
