題意:
輸出有多少對滿足條件的(a,b)
both a and b are prime;
a+b=n
a<=b;
思路:
一開始想的就是打表乙個素數陣列,然後還去二分。。mdzz。。直接判斷一下n-a[i]是不是素數和是不是》=a[i]就好了。
都能標記何必二分…= =、我比較蠢。。
然後是記憶體爆了。。
後來標記的需要開bool,而且那個記錄素數的陣列最好開小;
以後int a[1e7]要麼就不開,要麼就開bool型別。。。謹慎。。
ps:親測,int a[1e7]爆記憶體,32778kb= =
#include
using
namespace
std;
typedef
long
long ll;
const
int n=1e7+10;
bool isprime[n];
int sum[n/10];
int num;
void init()
}num=0;
for(int i=2;i<=10000000;i++)
}int main()
if(sum[i]>=n/2)
break;
}printf("case %d: %d\n",cas++,ans);
}return
0;}
1259 不相交的握手
偶數 個人站成乙個圓,總人數為 num people 每個人與除自己外的乙個人握手,所以總共會有 num people 2 次握手。將握手的人之間連線,請你返回連線不會相交的握手方案數。由於結果可能會很大,請你返回答案 模 10 9 7 後的結果。import j a.math.biginteger...
codevs1259 N皇后問題
在n n格的棋盤上放置彼此不受攻擊的n個皇后。按照西洋棋的規則,皇后可以攻擊與之處在同一行或同一列或同一斜線上的棋子。n後問題等價於再n n的棋盤上放置n個皇后,任何2個皇后不妨在同一行或同一列或同一斜線上。日常安利我的部落格本題題解 本來開始的第乙個題目並不是他,而是poj1321,但是我竟然菜到...
LightOj 1188 樹狀陣列
題意 給乙個數列 len 1e5 數列裡的數 num 1e5 現有q次詢問 1e5 詢問某個區間的不同的數有多少個。思路 明顯的樹狀陣列統計,自己寫的時候不太清楚那個樹狀陣列到底應該怎麼維護。有點想用掃瞄線類似的思想,然後離線所有詢問這樣去維護,甚至想到了按照右區間排序。但是到底樹狀陣列應該怎樣維護...