比赛的时候就想到了一个简单的暴力方法,
后来发现有点小瑕疵,
硬着头皮打了下去,
样例虽然过了但 0 p t s 0pts 0pts !
其实正解也是暴力,只是我的脑子没转过弯来。
A C C o d e AC~Code AC Code
#include
#include
#include
using namespace std;
int n,m,x,y,j=10000,maxx,js;
int a[1000010][3],b[10010],c[10010];
int main()
{
freopen("friend.in","r",stdin);
freopen("friend.out","w",stdout);
scanf("%d%d",&n,&m);
for(int i=1; i<=m; i++)
{
scanf("%d%d",&x,&y);
a[i][1]=x;
a[i][2]=y;
b[x]++;
b[y]++;
if(b[x]>maxx||b[x]==maxx&&j>x)
{
maxx=b[x];
j=x;
}
if(b[y]>maxx||b[y]==maxx&&j>y)
{
maxx=b[y];
j=y;
}
}
for(int i=1; i<=m; i++)
{
if(a[i][1]==j)
c[++js]=a[i][2];
if(a[i][2]==j)
c[++js]=a[i][1];
}
sort(c,c+js+1);
for(int i=1; i<=js; i++)
printf("%d ",c[i]);
return 0;
}
想着用图论拿取80%得分数
结果——
我最短路炸了。。。
正解:并查集+高精度
A C C o d e AC~Code AC Code
瞎搞了一个DP,样例都没过,胡乱交了上去。。。
百分之百 0 p t s 0pts 0pts
正解:DP+单调队列优化
终于入门啦!
这里的队列并不是直接取伤害的值,而是存着地址
我们可以通过 q q q(队列)中的元素来找到dp中的元素
那么我们认为 q [ h ] q[h] q[h]存着最低伤害的方案
为了保证 f [ i ] f[i] f[i]取 q q q中元素是合法的,也就是说, q q q中的元素必须在 i − R − 1 i-R-1 i−R−1以内,不然跳不到 i i i上面。
所以要加上这一句:
while(h<=t&&q[h]
A C C o d e AC~Code AC Code
#include
#include
#include
#include
using namespace std;
int n,l,r,f[1000010],a[1000010];
int h,t,q[1000010];
int main()
{
freopen("jump.in","r",stdin);
freopen("jump.out","w",stdout);
cin>>n>>l>>r;
for(int i=1; i<=n; i++)
{
cin>>a[i];
f[i]=16843009;
}
h=1;
for(int i=1; i<=n; i++)
{
if(i-l-1>=0)
{
while(h<=t&&f[q[t]]>=f[i-l-1]) //为了把新加入队列的元素放到适合它的位置。
t--;
t++;
q[t]=i-l-1;
}
while(h<=t&&q[h]<i-r-1)
h++;
if(h<=t)
f[i]=a[i]+f[q[h]];
}
if(f[n]<16843009)
cout<<f[n];
else
cout<<-1;
return 0;
}
我的贪心打错了一个变量,一个变量!
这让我丢失了 76.5 p t s 76.5pts 76.5pts (心痛)。
A C C o d e AC~Code AC Code
#include
#include
#include
using namespace std;
int n,a,b,z,ans,zx,zd,zx1,zd1;
int c[500010];
int main()
{
freopen("door.in","r",stdin);
freopen("door.out","w",stdout);
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>a>>b;
c[i]=a+b;
}
zx=0,zd=c[1];
for(int i=2; i<=n; i++)
{
if(c[i]<zx)
{
zx=0;
zd=c[i];
}
else
{
ans++;
zx1=c[i]-min(c[i],zd);
zd1=c[i]-zx;
zx=zx1;
zd=zd1;
}
}
cout<<ans;
return 0;
}
0 + 0 + 0 + 23.5 = 23.5 p t s 0+0+0+23.5=23.5pts 0+0+0+23.5=23.5pts
天 才 出 于 勤 奋 — — 高 尔 基 天才出于勤奋——高尔基 天才出于勤奋——高尔基