h diff-prime pairs
1*3 1*5 1*7 1*11.。。。。。
2*3 2*5 2*7 2*11.。。。。。
3*3 3*5 3*7 3*11.。。。。
4*3 4*5 4*7 4*11.。。。。打個素數表 ,用素數篩一遍
#includeusing namespace std;
bool a[11111111];
int zs[11111111];
int main()
}while(cin>>n)
ans=ans*(ans-1);
for(int i=2;i<=n;i++)
if(lss<=1)break;
ans=ans+lss*(lss-1);
}cout4維01揹包 記錄答案
要用2進製來存答案。。。。。
#includeusing namespace std;
const int n=40;
int dp[n][n][n][n];
long long path[n][n][n][n];
struct node
b[n];
int main()
for(int i=0;ij distance to work
求乙個圓交多邊形面積與多邊形面積的比值為(1-(p/q))
二分一下
#include"bits/stdc++.h"
using namespace std;
const int mx = 222;
const double eps = 1e-12;
const double pi = acos( -1.0 ) ;
inline double sqr( double x )
inline int dcmp( double x )
struct point
point( double _x , double _y ): x(_x) , y(_y) {}
void input()
// double norm()
friend point operator + ( const point &a , const point &b )
friend point operator - ( const point &a , const point &b )
friend point operator * ( const point &a , const double &b )
friend point operator * ( const double &a , const point &b )
friend point operator / ( const point &a , const double &b )
friend bool operator == ( const point &a , const point &b )
bool operator < ( const point &a )const
};typedef point vector;
double dot( point a , point b )
double cross( point a , point b )
double length(vector a)
int n,m;
point p[205];
int circleinterline( point a, point b, point o, double r, point *p )
}if ( dcmp(delta) > 0 )
return 0;
}double ********_area( point a, point b )
double sector_area( point a, point b, double r )
double calc( point a , point b , double r )
else
}else
else
}}double area_circleandpolygon( point *p , int n , point o , double r )
return fabs( res ) ;}
double polygonarea(point *p,int n)
void work(long double &sums, point o,double p, double q)
double ans = (l+r)/2;
printf("%.12f\n",ans);}
int main()
long double sums = polygonarea(p,n);
scanf("%d",&m);
for(int i = 1; i <= m; i++)
}
e sort-string
用map爆記憶體。
要想到 只有會迴圈的字串才能出現重複的按照題意 出現的串
比如 abcdabcdabcd 這樣 abcd 重複出現了k次,那麼答案就k 0,4,8.。。。。。
那麼如果是 abcdabcdabcdz 這樣儘管前面有迴圈,但是最後有乙個z ,那麼就不迴圈了,那麼答案就是1 0 1 /n 1 0 2。。。這樣
所以就要用到kmp中的next陣列的定義:
對於乙個字串的長度為len , next[i]陣列表示將第i個字元去掉,看s[0]~s[i-2] 和 s[1]~s[i-1]這兩段裡面的重複出現的子串的最大長度(對於第乙個子串我從頭往後看,對於第二個子串我們從後往前看)。例如 aaaa next[4]=3;再例如 abababab i=8的話,就是比較 abababa 和bababab這2個子串,根據上方括號的規則,那麼就是ababab重複了,那麼next[8]=6;
對於這道題,我們要求的是整個串中的最小迴圈長度,我們發現 上面的8-6=2以及4-3. 剛好是最小迴圈。
也就是說,對於乙個長度為len的字串來講,len-next[len]=最小迴圈長度,那麼如果字串本身不迴圈,那麼可以知道next[len]=0; 那麼len-next[len]=len,也就是該字串自己迴圈了一次,也就是沒有長度小於len的迴圈子串。且答案符合題意。
#includeusing namespace std;
#define ll long long
#define maxn 1000010
char s[maxn];
int len, next[maxn];
void makenext(int tlen) else
}}int main()
return 0;
}
牛客多校2018四 A
很顯然地發現對於某個位置的乙個1或2,它對答案的貢獻與之前進行了多少秒有關,所以趕緊打個表看一看,就發現對於某乙個1來說,它對答案的貢獻就是 t 2 2 t是之前經過的時間,對於2的情況,打出假設輸入的數列是 2 02 002 0002 的表,就發現答案分別是3,9,21,45,93 對這個答案數列...
2018牛客多校7
有點難度啊。a minimum cost perfect matching 隊友搞的 應該不難 把二進位制寫出來看看 includeusing namespace std define ll long long int define lson rt 1,l,m define rson rt 1 1,...
2018 牛客多校 2
problem a problem b 考慮第二種優惠,每乙個物品如果原價購買了,那麼向可以免費拿的那個物品連一條邊 在樹上被指向的那個點是父親 如果不考慮環的話,考慮樹上dp。設 f i 0 表示買掉以 i 為根的子樹需要的最小花費,設 f i 0 表示買掉以 i 為根的子樹並且 i 這個點是原價...