給出直角三角形其中一條邊的長度n,你的任務是構造剩下的兩條邊,使這三條邊能構成乙個直角三角形。
乙個整數n。
另外兩條邊b,c。答案不唯一,只要輸出任意一組即為合理,如果無法構造請輸出-1。示例1
複製
3
複製
4 5
示例2複製
4
複製
3 5
0<=n<=1e9當a為大於1的奇數2n+1時,b=2n²+2n, c=2n²+2n+1。1<=b,c<=1e18
n,b,c均為整數
勾股數:
實際上就是把a的平方數拆成兩個連續自然數,例如:
n=1時(a,b,c)=(3,4,5)
n=2時(a,b,c)=(5,12,13)
n=3時(a,b,c)=(7,24,25)
……這是最經典的乙個套路,而且由於兩個連續自然數必然互質,所以用這個套路得到的勾股陣列全部都是互質的。
2、當a為大於4的偶數2n時,b=n²-1, c=n²+1
也就是把a的一半的平方分別減1和加1,例如:
n=3時(a,b,c)=(6,8,10)
n=4時(a,b,c)=(8,15,17)
n=5時(a,b,c)=(10,24,26)
n=6時(a,b,c)=(12,35,37)
#include usingnamespace
std;
intmain()
else
if(n>=4&&n%2==0
)
else
cout
<< -1
}
牛客練習賽51
theme 給定n與m,要求你用正整數填充n個元素,使得這n個元素的和 m,定義喜愛度為i的個數使得2 i n且a i a i 1 1。1 n 1e5,1 m 1e9 solution 構造題。考慮列舉分成幾個段i,若某段的長度為len,則該段的數為1 len,可知喜愛度應為n i,所以我們的目標是...
題解 牛客練習賽51
字首a的數量,字尾c的數量,遇到b就計算一次答案。includeusing namespace std typedef long long ll const int n 1e5 100 char s n int cnt n int main int tmp 0 for int i 1 i n i p...
牛客練習賽51 A B C
前字尾維護字串中b左邊a的個數和b的個數,對於每個b,它能構成的的abc的個數即為它前面a的個數乘以它後面c的個數 include using namespace std define ll long long define inf 0x3f3f3f3f typedef pair int,int p...