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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

A. Find The Array

發布時間:2024/3/26 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 A. Find The Array 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:https://codeforces.com/contest/1550/problem/A

Let’s call an array a consisting of n positive (greater than 0) integers beautiful if the following condition is held for every i from 1 to n: either ai=1, or at least one of the numbers ai?1 and ai?2 exists in the array as well.

For example:

the array [5,3,1] is beautiful: for a1, the number a1?2=3 exists in the array; for a2, the number a2?2=1 exists in the array; for a3, the condition a3=1 holds;
the array [1,2,2,2,2] is beautiful: for a1, the condition a1=1 holds; for every other number ai, the number ai?1=1 exists in the array;
the array [1,4] is not beautiful: for a2, neither a2?2=2 nor a2?1=3 exists in the array, and a2≠1;
the array [2] is not beautiful: for a1, neither a1?1=1 nor a1?2=0 exists in the array, and a1≠1;
the array [2,1,3] is beautiful: for a1, the number a1?1=1 exists in the array; for a2, the condition a2=1 holds; for a3, the number a3?2=1 exists in the array.
You are given a positive integer s. Find the minimum possible size of a beautiful array with the sum of elements equal to s.

Input
The first line contains one integer t (1≤t≤5000) — the number of test cases.

Then t lines follow, the i-th line contains one integer s (1≤s≤5000) for the i-th test case.

Output
Print t integers, the i-th integer should be the answer for the i-th testcase: the minimum possible size of a beautiful array with the sum of elements equal to s.

Example
input
4
1
8
7
42
output
1
3
3
7
Note
Consider the example test:

in the first test case, the array [1] meets all conditions;
in the second test case, the array [3,4,1] meets all conditions;
in the third test case, the array [1,2,4] meets all conditions;
in the fourth test case, the array [1,4,6,8,10,2,11] meets all conditions.

一道。。。簡單的構造序列題。。我竟然用回溯法搞了半天還超時。。。。菜到家了

題目意思:
給你一個n,要你求一個最短的序列和等于n,里面的元素要滿足ai = 1 或 ai - 1,ai - 2的數已經在序列里面。。

可以構造成 1+3+5+7+…+2d-1 = n^2,通過這個我們知道至少要根號s個數,那么令根號s=d(取上整),則1+3+5+…+2d-3 = (d-1)的平方,而且1 <= s - (d-1)的平方 <= 2d-1, 通過這個式子就可以找到最小的序列數,(這里的s應該指的是你輸入的數,加個根號取上整就是最小序列數,因此我們可以反過來,當遇到一個數的平方大于s時那么這個數就是要求的結果)

AC代碼:

#include <iostream> using namespace std;int main(){int t;cin >> t;while(t--){int n;cin >> n;int ans = 1;while(ans*ans < n){ans+=1;}cout << ans << endl;}return 0; }

總結

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

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