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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

HDU3113(工科数学分析之分解)

發布時間:2024/4/11 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HDU3113(工科数学分析之分解) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

題目:http://acm.hdu.edu.cn/showproblem.php?pid=3113


題意:給出一個正整數n,范圍是[1,1000000],求出滿足方程的一組整數解,要求x最小。


分析:這個方程與平方和不同的是,加號兩邊的任意一個可以為負數,所以直接枚舉然后Hash就顯得不好做了。那么我用一種

比較有效的方式解決。


我們知道,那么我們這樣來做,首先把n的所有因子找出來,枚舉所有的因子。


假設當前的因子為,那么令,即得到:




在這里其實還有一種情況就是:




你會發現這種情況根本沒有解,所以不予考慮。


對上面的方程組消去y,我們得到:?,那么得到:




那么我們就只需要在枚舉因子的過程中,判斷是否為完全平方數和,并且記錄最

小的x以及對應的y。


#include <iostream> #include <string.h> #include <algorithm> #include <stdio.h> #include <math.h>using namespace std; const int N = 1000005; const int INF = 1 << 30; const int M = 1005;bool prime[N]; int p[N]; int pri[M],num[M]; int arr[M]; int k,cnt,ct;void isprime() {k = 0;memset(prime,true,sizeof(prime));for(int i=2;i<N;i++){if(prime[i]){p[k++] = i;for(int j=i+i;j<N;j+=i)prime[j] = false;}} }void Divide(int n) {cnt = 0;int t = (int)sqrt(1.0*n);for(int i=0;p[i]<=t;i++){if(n%p[i]==0){int a = 0;pri[cnt] = p[i];while(n%p[i]==0){n /= p[i];a++;}num[cnt] = a;cnt++;}}if(n > 1){pri[cnt] = n;num[cnt] = 1;cnt++;} }void dfs(int dept,int product = 1) {if(dept == cnt){arr[ct++] = product;return;}for(int i=0;i<=num[dept];i++){dfs(dept+1,product);product *= pri[dept];} }void Work(int n) {ct = 0;Divide(n);dfs(0,1);sort(arr,arr+ct);int ctt = 0;int ansx = INF;int ansy = INF;int tmpx = 0;int tmpy = 0;for(int i=0;i<ct;i++){int t = n / arr[i] * 12 - 3 * arr[i] * arr[i];if(t >= 0){int tmp = (int)sqrt(t * 1.0);if(tmp * tmp == t){if((3*arr[i] - tmp)%6==0){ctt++;tmpx = (3*arr[i] - tmp) / 6;if(tmpx < ansx){ansx = tmpx;ansy = arr[i] - tmpx;}}if((3*arr[i] + tmp)%6==0){ctt++;tmpx = (3*arr[i] + tmp) / 6;if(tmpx < ansx){ansx = tmpx;ansy = arr[i] - tmpx;}}}}}if(ctt == 0) puts("Impossible");else printf("%d %d\n",ansx,ansy); }int main() {int n;isprime();while(~scanf("%d",&n)){if(n == 0) break;Work(n);}return 0; }


總結

以上是生活随笔為你收集整理的HDU3113(工科数学分析之分解)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产成人av免费看 | 婷婷伊人久久 | 十八禁毛片| 日日麻批| 嫦娥性艳史bd | 天天摸天天操天天干 | 亚洲第一视频在线播放 | 日本黄色特级片 | 亚洲色图15p | 韩国三级bd高清中字2021 | 男人和女人搞鸡 | 卡一卡二卡三 | 劲爆欧美第一页 | 影音先锋美女 | 人妻洗澡被强公日日澡 | 色婷婷综合成人av | 久久香蕉精品 | 女儿的朋友在线播放 | 极品在线播放 | 亚洲成人av一区二区三区 | 糖心视频在线 | 福利在线免费 | 黄色岛国片 | 麻豆视频国产 | 国产免费无码XXXXX视频 | 欧美激情在线看 | 综合影院| 亚洲视频播放 | 欧美黄色a级片 | 污视频大全 | 亚洲黄视频 | 欧美日韩女优 | 亚洲精品三 | 欧美日韩一区二区三区视频 | 国产一区在线看 | av自拍| 性欧美大战久久久久久久免费观看 | 中文字幕在线不卡视频 | 18av在线播放 | 欧美粉嫩videosex极品 | 天天天天天天操 | 国产成人三级在线观看 | 自拍偷拍在线播放 | 四虎国产精品永久免费观看视频 | 狠狠狠狠狠 | 中文字幕人妻无码系列第三区 | jizz中文字幕 | 国产性精品 | 欧美一区二区人人喊爽 | 欧美久草 | 免费特级毛片 | 玖玖五月 | 青青草视频免费看 | 日干夜干天天干 | 色在线综合 | 91艹| 97超碰免费在线观看 | 黄色片一级 | 一本色道久久综合亚洲精品按摩 | 黄色小视频在线观看免费 | 久久电影一区 | 人妻少妇偷人精品无码 | 亚洲精品免费在线视频 | 人妻丰满熟妇av无码区不卡 | 青草视频免费看 | 中国免费毛片 | 殴美性生活 | 午夜黄色 | 成人在线免费看视频 | 久久国产二区 | 日韩在线高清视频 | 3d动漫精品啪啪一区二区竹菊 | 双性懵懂美人被强制调教 | 欧美一区二区三区在线观看视频 | 久热免费视频 | 中文字幕日韩欧美一区二区三区 | 爆操女秘书 | 日韩av综合网 | 欧美色xxx| 久久精品无码一区二区三区免费 | 亚欧洲精品视频在线观看 | 激情综合五月天 | 女性爱爱视频 | 在线视频日韩欧美 | 久久久久99精品成人片毛片 | 五月综合在线 | 国产美女裸体无遮挡免费视频 | 亚洲视频在线观看一区二区三区 | 日本免费网站在线观看 | 九七影院在线观看免费观看电视 | 精品午夜视频 | 无码国产色欲xxxxx视频 | 午夜视频在线网站 | 亚洲免费视频一区二区三区 | 男女裸体影院高潮 | 日本视频在线观看 | 欧美顶级少妇做爰hd | 亚洲一二三四 | 狠狠操婷婷 |