Time of Update: 2018-12-04
看到本題目簡單分析了一下只要解決兩個問題就能搞定這一題。1、面積為0的情況,分兩種,一種是一條直線,一種是折線走出去,在原路返回2、求出所有點座標,求手繪多邊形的面積這兩個問題都很容易解決。1、直線情況也就兩個對角線,和水平垂直。原路返回的可以將反向的標示當做是一樣的,比如2和8都當做8,如果這個字串是迴文,那麼就是原路返回2、手繪多邊形面積,這個直接求相鄰點的叉積就可以了。實際上就是根據向量面積來計算的,這個這裡不多做解釋,搜一下求手繪多邊形面積,網上很多解釋,大家可以看看。 後來我發現我想多
Time of Update: 2018-12-04
看到這個題目簡單分析了一下,最後才發現原來就是一個數論知識。首先,題目主要是求從0,0能看到的點的個數。先考慮只有1×1的時候,三個點,根據圖明顯看出,只需要計算下三角,結果=下三角的個數×2再加1(斜率為1的點)。那麼我們只需要計算斜率從0到1之間的個數就行了,不包括1,包括0.結果設為sum,那麼最終就是2*sum+1. 1×1隻有一個斜率為0的2×2斜率有0,1/2(0已經算過了,以後不再算了),其實就多了一個斜率為1/2的。3×3的時候,有1/3,2/3兩個,比以前多了2個4×4的時候,
Time of Update: 2018-12-04
因為資料範圍20,所以直接枚舉是2^20,不會逾時。直接求組合就行。在N個數裡面取1個數,2個數。。。。N個數,求出一個最小差值就可以了。下面是組合的演算法--175MS#include<stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>#define nMax 25int N,B;int height[nMax];int ans;int getSum(int
Time of Update: 2018-12-04
拓撲排序——Topological Sort;對一個有向非循環圖(Directed Acyclic Graph簡稱DAG)G進行拓撲排序,是將G中所有頂點排成一個線性序列,使得圖中任意一對頂點u和v,若<u,v> ∈E(G),則u線上性序列中出現在v之前。以上是灰常抽象的拓撲排序的定義哈;其實拓撲排序簡單說就是一些事件,某些必須在另外某些發生之前;比如穿襪和穿鞋;一般的題目可能會給一些事件,和一些發生次序,來求一個拓撲排序;分析一個拓撲圖A---->B----->C---
Time of Update: 2018-12-04
個人NO。1一開始題意理解有錯。一星星左下邊有N顆星星,那它的等級就是N。一開始理解必須X,Y兩個座標都小於,後來根據範例看了一下只要左下方即可,X,Y座標都小於等於即可,但不包括星星本身。#include <iostream>#include <stdio.h>#include <string.h>using namespace std;int lowbit(int x){ return x&-x;}int c[32005];int x[320
Time of Update: 2018-12-04
三角形的面積公式有許多,例如已知三角形的三邊a、b、c及外接圓、內切圓的半徑為R,r,則有S△=abc/4R與.又如,在△ABC中,若=(),= (),則△ABC的面積為S=. 此三角形面積的向量公式可如下證明.證明:由上例公式,不必求三角形的邊長和角度,只要知道任意兩邊所對應的向量即可,而其向量在已知三角形三個頂點的座標時不難求得. 由此,我們知道三角形三個頂點的座標,也可以得到如下面積公式., ,則= .
Time of Update: 2018-12-04
Hardwood SpeciesTime Limit: 10000MS Memory Limit: 65536KTotal Submissions: 15439 Accepted: 6190DescriptionHardwoods are the botanical group of trees that have broad leaves, produce a fruit or nut, and generally go dormant in the winter. America's
Time of Update: 2018-12-04
我們知道,線上程中無法使用像updateData(false)這些全域函數,但是我們又想線上程函數中顯示一些改變,那麼我們該如何辦呢?1、比較好的辦法:hGpsThread = CreateThread(NULL, NULL, GPSThreadProc, this, NULL, &m_dwThreadID); 傳遞的this指標可以進行強制轉換,線程函數:DWORD CGPS_TestDlg::GPSThreadProc(LPVOID pArg)
Time of Update: 2018-12-04
/* **************************** * 半形<=>全形 * * [NB聯盟] * * Writer YuPing * **************************** * 參數說明: * str:要轉換的字串 * flag:標記,為0時半轉全,為非0時全轉半 * 傳回值類型:字串 **************************** */ function DBC2SBC(str,flag) { var i; var
Time of Update: 2018-12-04
最長迴文Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5319 Accepted Submission(s): 1815Problem Description給出一個只由小寫英文字元a,b,c...y,z組成的字串S,求S中最長迴文串的長度.迴文就是正反讀都是一樣的字串,如aba,
Time of Update: 2018-12-04
題目連結:http://poj.org/problem?id=3295題目意思:給定你一邏輯運算式,讓你判斷這個式子是不是永真式這個題目對於有一點ACM基礎的孩子來說都算是比較簡單的一題但是我卻花了兩小時 wa了數次原因一:誤認為題目給的測試資料都會是保證從會面向前取值的時候都會滿足取值到兩個後(N除外)都會有一個邏輯符號等著他們,事實證明我錯了,我wa的傷心死了後來想到這點,但是不敢確定,就在default上測試那個條件 用個while(1)來測試,如果OJ返回逾時,那麼就說明我的猜想是對的,
Time of Update: 2018-12-04
Palindrome Sub-ArrayTime Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 162 Accepted Submission(s): 72Problem Description A palindrome sequence is a sequence which is as same as its reversed
Time of Update: 2018-12-04
題目連結:http://poj.org/problem?id=3277這個題目算是我真正意義上做的第一個離散化和線段樹結合的題目,做了很長時間,不斷打補丁最終才AC,從這個題目中我學到了很多1、離散化的思想2、線段樹的數組下標建樹方式(以前全部都是在數組上用指標建立樹)3、L>>1+1是先做1+1,也就是說L>>1+1 <==> L>>2
Time of Update: 2018-12-04
1 判斷線段是否非規範相交下面模板是根據跨立實驗得到的結果#define eps 1e-8struct point{double x;double y;};double multi(point p0, point p1, point p2)//j計算差乘{ return (p1.x-p0.x)*(p2.y-p0.y)-(p2.x-p0.x)*(p1.y-p0.y);}bool is_cross(point s1,point e1,point s2,point
Time of Update: 2018-12-04
題目連結:http://poj.org/problem?id=1159這個題目算是一個簡單基礎的DP了,但是我還是想了一會dp方程dp[i][j]的意思是,下標從i到j的字串,如果變成迴文串最少要加多少個字元首先當i==j的時候肯定是0,因為一個字元肯定就是迴文,當i+1=j的時候,如果str[i]==str[j]那麼dp[i][j]=0否則dp[i][j]=1這兩個步驟完成之後開始如下dp,最後返回dp[0][n-1]就行了! if(str[j]==str[j+i])
Time of Update: 2018-12-04
看題解一開始還有地方不理解,果然是我的組合數學思維比較差然後理解了之後自己敲了一個果斷TLE。。。。我以後果然還得多練啊好巧妙的思路啊 知識1:費馬小定理是數論中的一個重要定理,其內容為:假如p是質數,且(a,p)=1,那麼 a^(p-1) ≡1(mod p)假如p是質數,且a,p互質,那麼 a的(p-1)次方除以p的餘數恒等於1對於除法模數還需要用到費馬小定理: a ^ (p - 1) % p = 1; -> a ^ (p - 2) % p = (1 / a) % p; 巧妙1:for(
Time of Update: 2018-12-04
題目連結:http://acm.hdu.edu.cn/showproblem.php?pid=4034不斷去除邊,判斷有沒有從i到k的距離加上k到j的距離等於i到j的距離,如果存在說明i j邊多餘,去掉如果impossible 存在i到k的距離加上k到j的距離小於i到j的距離,矛盾了#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>using
Time of Update: 2018-12-04
給力!!! 可能是表徵圖緩衝出了問題,因為表徵圖的資料是以連結的形式存放在快取區域中的,如果鏈表中每個元素的開始與結束位置發生了變化,那麼就會出現這種情況。 碰上這個故障可以通過手動重設表徵圖緩衝來解決。首先右擊案頭空白處選擇“屬性”,切換到“外觀”選項卡,點進階,在“項目”框的下拉式清單中選擇“表徵圖”,改變一標的大小,然後再變回原設定即可。這樣系統就會自動清空並重建緩衝中的資料。 重建表徵圖緩衝 1.系統表徵圖緩衝受損。如果是 WinXP可通過刪除 Documents and
Time of Update: 2018-12-04
註:如果在程式中添加了下面要求的標頭檔和庫檔案後,仍提示找不到或者外部參考錯誤,那麼就要在wm614\public目錄下搜尋一下添加的lib檔案和標頭檔,然後分別拷貝到:D:\Program Files\Windows Mobile 6 SDK\PocketPC\Include\Armv4i\和D:\Program Files\Windows Mobile 6 SDK\PocketPC\Lib\Armv4i\目錄下面。 n 添加標頭檔和庫檔案#include
Time of Update: 2018-12-04
題目大意:這個是中文的,就不用解釋了,有個遊戲叫是男人就下100層,就是這個遊戲哈。。。演算法分析:仔細分析發現,其實就是從第一個點開始,由於題目說肯定有解,不會摔死,所以要麼向左走,要麼向右走,其中至少一個有解。到下一層,同樣要麼左走要麼右走,其實就是兩種狀態。那麼我們每次只需要求這兩種狀態的最小值既可。狀態方程:對於每一層的兩個點,edge[i].min1 = Min(edge[i].x1 - edge[j].x1 + edge[j].min1, edge[j].x2 -