143 - ZOJ Monthly, October 2015

Ant

比賽的時候公式推出來了,可是取模那一塊弄錯了,一直wa

假設另外兩條邊是x,y

那麼最短的路線就是len = x^2 + y^2 + n^2 + 2*x*y

這個公式分成三個部分求

s1 = sum(x^2 + y^2

s2 = sum(n^2)

s3 = sum(2*x*y)

假設n=3

n        x     y

3        3    3

3        3    2

3        3    1

3        2    2

3        2    1

3        1    1

顯然s2 = (n^2) * n *(n+1)/ 2 

s1的公式也是簡單的

對於每一個i (1 <= i <= n), i^2都有(n+1)個

s1 = (n + 1)* ( n*(n+1)*(n+2)/6 )

難點是s3,需要通過規律得到

s3 = ( n * (n+1)/2 )^ 2+ n*(n+1)*(n+2)/6 

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <string>
using namespace std;
#define mod 1000000007
#define ll long long int
ll mul(ll a,ll n)
{
	ll s=1;
	while(n)
	{
		if(n&1) s=(s*a)%mod;
		a=(a*a)%mod;
		n>>=1;
	}
	return s;
}
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		ll n;
		scanf("%lld",&n);
		n%=mod;
		ll s1,s2,s3;
		s1=(n+2)%mod*n%mod*(n+1)%mod*(2*n%mod+1)%mod*mul(6,mod-2)%mod;
		s2=n%mod*n%mod*n%mod*(n+1)%mod*mul(2,mod-2)%mod;
		s3=n%mod*n%mod*(n+1)%mod*(n+1)%mod*mul(4,mod-2)%mod;
		ll ans=(s1+s2+s3)%mod;
//		cout<<s1<<" "<<s2<<" "<<s3<<endl;
		printf("%lld\n",ans);
	}
	return 0;
} 

Birthday Gift


Cake

最大的p[ i ].b都是Bob拿走的

先按p[ i ].b從大到小排序

dp的轉移方程式是

dp[ i ][ j ] = max ( dp[ i-1 ][ j ] , dp[ i-1 ][ j-1 ] + p[ i ].a)

i:前i個        j:Alice取了j個

j <= i/2

<span style="font-size:14px;">#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <string>
using namespace std;
int dp[805][805];
struct node
{
	int a,b;
	friend bool operator < (const node n1,const node n2)
	{
		return n1.b>n2.b;
	}
}p[805];
int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n;
		scanf("%d",&n);
		for(int i=1;i<=n;i++)
		{
			scanf("%d%d",&p[i].a,&p[i].b);
		}
		memset(dp,0,sizeof(dp));
		sort(p+1,p+1+n);
		for(int i=1;i<=n;i++)
		{
			for(int j=1;j<=i/2;j++)
			{
				dp[i][j]=max(dp[i-1][j],dp[i-1][j-1]+p[i].a);
			}
		}
		printf("%d\n",dp[n][n/2]);
	}
	return 0;
} </span>

Suika's Chain

Two Ellipses

Number Game

Gene Cluster

Market

Prime Query

Coins

Bob wants to pour water

Semantic Version
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章