百度之星 初赛第二场
2012-06-03 12:14
127 查看
A 简单DP
#include<iostream>
#include<algorithm>
using namespace std;
#define MAX 100005
int main()
{
long long n;
long long num[MAX], dp[MAX];
cin>>n;
for(int i=0; i<n; i++)
cin>>num[i];
dp[0]=num[0];
for(int i=1; i<n; i++)
{
dp[i]=num[i];
for(int j=0; j<i; j++)
{
if(dp[i]<(dp[j]^num[i]))
dp[i]=dp[j]^num[i];
}
}
sort(dp, dp+n);
int temp;
for(int i=n-1; i>=0; i--)
if(dp[i]!=dp[n-1])
{
temp = i;
break;
}
cout<<dp[n-1]<<" "<<dp[temp]<<endl;
}
C 简单枚举
#include<iostream>
#include<algorithm>
using namespace std;
#define MAX 100005
struct Node
{
int score;
int ID;
int th;
}node[MAX];
struct fr
{
int xi;
int yi;
}frie[1005];
struct Gift
{
int ki;
int ai;
int bi;
}gift[2];
bool Cmp(Node a, Node b)
{
return a.score>b.score;
}
int main()
{
int n;
int xi, yi;
int ki, ai, bi;
int visited[1005]={0};
cin>>n;
for(int i=0; i<n; i++)
{
cin>>frie[i].xi>>frie[i].yi;
}
for(int i=0; i<2; i++)
cin>>gift[i].ki>>gift[i].ai>>gift[i].bi;
int k=0;
for(int i=0; i<2; i++)
for(int j=0; j<n; j++)
{
node[k].score=gift[i].ai*frie[j].xi+gift[i].bi*frie[j].yi;
node[k].ID=j;
node[k].th = i;
k++;
}
sort(node, node+2*n, Cmp);
int temp = n;
int sum =0 ;
for(int i=0; i<2*n&&temp>0; i++)
{
if( gift[node[i].th].ki>0 &&!visited[node[i].ID])
{
sum+=node[i].score;
visited[node[i].ID]=1;
gift[node[i].th].ki--;
temp--;
}
}
cout<<sum<<endl;
}
#include<iostream>
#include<algorithm>
using namespace std;
#define MAX 100005
int main()
{
long long n;
long long num[MAX], dp[MAX];
cin>>n;
for(int i=0; i<n; i++)
cin>>num[i];
dp[0]=num[0];
for(int i=1; i<n; i++)
{
dp[i]=num[i];
for(int j=0; j<i; j++)
{
if(dp[i]<(dp[j]^num[i]))
dp[i]=dp[j]^num[i];
}
}
sort(dp, dp+n);
int temp;
for(int i=n-1; i>=0; i--)
if(dp[i]!=dp[n-1])
{
temp = i;
break;
}
cout<<dp[n-1]<<" "<<dp[temp]<<endl;
}
C 简单枚举
#include<iostream>
#include<algorithm>
using namespace std;
#define MAX 100005
struct Node
{
int score;
int ID;
int th;
}node[MAX];
struct fr
{
int xi;
int yi;
}frie[1005];
struct Gift
{
int ki;
int ai;
int bi;
}gift[2];
bool Cmp(Node a, Node b)
{
return a.score>b.score;
}
int main()
{
int n;
int xi, yi;
int ki, ai, bi;
int visited[1005]={0};
cin>>n;
for(int i=0; i<n; i++)
{
cin>>frie[i].xi>>frie[i].yi;
}
for(int i=0; i<2; i++)
cin>>gift[i].ki>>gift[i].ai>>gift[i].bi;
int k=0;
for(int i=0; i<2; i++)
for(int j=0; j<n; j++)
{
node[k].score=gift[i].ai*frie[j].xi+gift[i].bi*frie[j].yi;
node[k].ID=j;
node[k].th = i;
k++;
}
sort(node, node+2*n, Cmp);
int temp = n;
int sum =0 ;
for(int i=0; i<2*n&&temp>0; i++)
{
if( gift[node[i].th].ki>0 &&!visited[node[i].ID])
{
sum+=node[i].score;
visited[node[i].ID]=1;
gift[node[i].th].ki--;
temp--;
}
}
cout<<sum<<endl;
}
相关文章推荐
- 直线交点的凸包(百度之星2009初赛第二场第三题)
- 百度之星2014初赛第二场
- 百度之星初赛第二场1006(二分+尺取)
- 百度之星2012初赛第二场C, 网页聚类, 二分
- 百度之星2016初赛第二场(Astar Round 2B)
- [原创]百度之星2009初赛第二场第四题解答
- 【百度之星】初赛第二场:B网页聚类
- 百度之星2016初赛(第二场) -- Astar Round2B
- 动态规划-hdoj-4832-百度之星2014初赛第二场
- 2012百度之星初赛第二场ProblemC
- 百度之星初赛第二场C题-费用流求最大权匹配
- 2012百度之星初赛第二场A题解答
- 百度之星初赛第二场1005
- [DFS]百度之星初赛第二场 棋盘占领
- hdu4834 百度之星2014初赛第二场
- 2014百度之星初赛(第二场)——Best Financing
- hdu5256 序列变换 百度之星初赛第二场 最长上升子序列变形
- 动态规划-hdoj-4832-百度之星2014初赛第二场
- 2014百度之星初赛(第二场)——Scenic Popularity
- hdu 5255 魔法因子 打表 或者 乱搞 百度之星初赛第二场1004