Codeforces 1017 CThe Phone Number
題意:給了數n代表數列的長度,要求構造一個數列使得最長上升自序列的長度和最長下降子序列的長度和最小
分析: 構造.我們把這個序列分成若干段,首先滿足最長上升子序列的長度最小的話,就儘可能讓每一段是遞減的,而最長上升子序列的長度和子段有關. 再考慮最長下降子序列,因為已經每一段之間都是遞減的關係,那麼子段遞增才可能儘可能讓遞減序列的長度小. 至於分成多少段,我們假設分成x段,則最長上升子序列的長度為n/x,最長下降子序列的長度為x,我們要使得x+n/x儘可能小就是x=sqrt(n)的時候
程式碼:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 10;
int a[maxn],tmp[maxn];
vector<int>vec[maxn];
bool cmp(int x,int y)
{
return x > y;
}
int main()
{
int n;
cin>>n;
for(int i = 1; i <= n; i++)
a[i] = i;
int x = (int)sqrt(n);
//printf("%d\n",x);
int r = n % x;
int d = n / x;
if(r != 0)d++;
for(int i = 1; i <= d; i ++)
{
for(int j = (i - 1) * d + 1; j <= i * d && j <= n; j++)
vec[i].push_back(a[j]);
}
for(int i = d; i >= 1; i--)
{
for(int j = 0; j < vec[i].size(); j++)
printf("%d ",vec[i][j]);
}
printf("\n");
return 0;
}
相關文章
- Leetcode 17 Letter Combinations of a Phone NumberLeetCode
- Leetcode – 017. Letter Combinations of a Phone NumberLeetCode
- LeetCode Letter Combinations of a Phone Number(017)解法總結LeetCode
- 演算法練習--LeetCode--17. Letter Combinations of a Phone Number: 100%演算法LeetCode
- CodeForces - 976A:Minimum Binary Number(水題)
- 關於開發者協議Edit Phone Number終極解決方案協議
- 「CF1017G」The Tree
- 【PAT乙級】1017 A除以B
- What is a mobile phone film cutting machine?Mac
- Oracle dataguard報錯:Error 1017 received logging on to the standbyOracleError
- 天貓公佈雙11資料:Phone XS Max銷量比Phone XS多10倍
- Windows Phone SDK 8/8.1 官方下載Windows
- PAT-B 1017 A除以B【模擬 大數除法】
- 「題目程式碼」P1013~P1017(Java)Java
- JavaScript Number()JavaScript
- Codeforces
- Kata:Hamming number
- JavaScript Number toLocaleString()JavaScript
- JavaScript Number toString()JavaScript
- Number.NaNNaN
- JavaScript Number 物件JavaScript物件
- Leetcode Number of islandsLeetCode
- Windows Phone應用效能監控與分析技巧Windows
- CodeForces 1307
- 9.11 codeforces
- 「日常訓練」Phone Numbers (CFR466D2C)
- Perfect Number 完美數
- [LeetCode] Third Maximum NumberLeetCode
- [LeetCode] Find the Duplicate NumberLeetCode
- Leetcode 9 Palindrome NumberLeetCode
- Number.parseInt() 方法
- Number.parseFloat()方法
- Number.isSafeInteger()方法
- Number.isNaN()方法NaN
- Number.isFinite()方法
- Js中的NumberJS
- Number.POSITIVE_INFINITY
- Number.ATIVE_INFINITY