uva11401 數學基礎題

2021-07-03 05:21:12 字數 1182 閱讀 2955

題目的大意是:現在有1...n總共n個不同的數字,從裡面任選三個作為三邊長,能構成三角形的個數一共有多少個。

解答:設c(x)是最長邊為x時的三角形個數,那麼要求的答案就等於c(1) + c(2) + ...... + c(x),所以主要需要解決的是c(x),又設三邊長分別為x,y,z,由x-y < z < x得到:

1.當y = 1時,z有0個解;

2.當y = 2時,z有1個解;

......

......

3.當y = x - 1時,z有x - 2個解。

另外,裡面有x = y的情況要去掉,即x = y 從 x/2 + 1 ~ x - 1, 一共有x - x / 2 - 1個,然後計算的總數再來除以2,因為每種情況都被計算了兩遍,比如有y = 2,z = x - 1和y = x - 1,z = 2兩種情況。

#include "stdio.h"

#include "string.h"

#include "math.h"

#include #include #include #include #include #include #include using namespace std;

#define maxm 1

#define maxn 1

#define max(a,b) a > b ? a : b

#define min(a,b) a < b ? a : b

#define mem(a,b) memset(a,b,sizeof(a))

int mod = 1000000007;

double pi = acos(-1.0);

double eps = 1e-6;

typedef structedge;

edge edge[maxm];

int head[maxn];

int knum;

void addedge(int f, int t, int w)

long long f[1000005];

void func()

}int n;

int main()

{// freopen("d:\\test.txt", "r", stdin);

func();

while(cin>>n){

if( n < 3 )

break;

cout<

UVA 11401 數學公式 dp

題意 給定乙個不小於3的正整數n,從1到n中的數中選出三個數構成三角形,求這樣的三角形的種類。3,4,5和3,5,4為同一三角形。分析 該題的資料很大,顯然不能用普通的模擬的方法,肯定會超時。但是可以打表找出規律,見下圖 通過打表可以發現dp 4 dp 3 1 1 dp 5 dp 4 1 2 dp ...

UVa 11401 數三角形 組合數學

數三角形 counting,uva 11401 有多少種方法可以從1,2,3,n中選出 3個不同的整數,使得以 它們為三邊長可以組成三角形?比如n 5時有3種方法,即 2,3,4 2,3,5 3,4,5 n 8時有22種方法。輸入格式 輸入包含多組測試資料,每組資料的第一行為整數n 3 n 1000...

uva10820 簡單數學題

題目的大概意思是有兩個變數x,y,然後x,y都是小於n的,有乙個函式f x,y 另外f x k,y k f x,y 問f x,y 在x,y都不超過n的時候的取值個數,很明顯的就是記下來的想x,y必定是互素的,當然有乙個另外就是1,1。求解,很明顯的就是轉化為尤拉phi函式問題,求出1 n中與n互素的...