QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#154127 | #6406. Stage Clear | 275307894a | WA | 25ms | 269460kb | C++14 | 1.4kb | 2023-08-31 13:55:15 | 2023-08-31 13:55:16 |
Judging History
answer
#include<bits/stdc++.h>
#define Gc() getchar()
#define Me(x,y) memset(x,y,sizeof(x))
#define Mc(x,y) memcpy(x,y,sizeof(x))
#define d(x,y) ((m)*(x-1)+(y))
#define R(n) (rnd()%(n)+1)
#define Pc(x) putchar(x)
#define LB lower_bound
#define UB upper_bound
#define fi first
#define se second
using namespace std;using ll=long long;using db=double;using lb=long db;using ui=unsigned;using ull=unsigned long long;using pii=pair<int,int>;using LL=__int128;
const int N=36+5,M=N*40+5,K=(1<<25)+5,mod=998244353,Mod=mod-1;const db eps=1e-9;const ll INF=1e18+7;mt19937 rnd(time(0));
int n,m;ll A[N],B[N];
namespace Solve1{
ll dp[K],S[K];int k,x,y,E[K],P[N];
void Solve(){
int i,j;k=(1<<n-1);
while(m--) scanf("%d%d",&x,&y),P[x-1]|=1<<y-1;
E[0]=P[0];for(i=0;i<n-1;i++) E[1<<i]=P[i+1];
for(i=1;i<k;i++) E[i]=E[i^(i&-i)]|E[i&-i];
for(i=0;i<n-1;i++) S[1<<i]=B[i+1]-A[i+1];
for(i=1;i<k;i++) S[i]=S[i^(i&-i)]+E[i&-i];
Me(dp,0x3f);dp[0]=0;for(i=0;i<k;i++){
for(j=1;j<n;j++) if(!(i>>(j-1)&1)&&E[i]>>j&1) dp[i|(1<<j-1)]=min(dp[i|(1<<j-1)],dp[i]+max(0ll,A[j]-(dp[i]+S[i])));
}
printf("%lld\n",dp[k-1]);exit(0);
}
}
void Solve(){
int i,j;scanf("%d%d",&n,&m);
for(i=1;i<n;i++) scanf("%lld%lld",&A[i],&B[i]);
if(n<=26) Solve1::Solve();
}
int main(){
int t;
// scanf("%d",&t);
t=1;
while(t--) Solve();
cerr<<clock()*1.0/CLOCKS_PER_SEC<<'\n';
}
详细
Test #1:
score: 100
Accepted
time: 25ms
memory: 269460kb
input:
4 4 4 2 5 3 2 6 1 2 1 3 2 4 3 4
output:
4
result:
ok 1 number(s): "4"
Test #2:
score: -100
Wrong Answer
time: 15ms
memory: 268900kb
input:
15 14 254040392438309 117083115436273 500005748229691 557255157630172 821034233718230 865199673774998 659892147898798 987564141425694 81172575487567 811635577877255 751768357864605 341103322647288 454926350150218 140191090713900 921608121471585 659295670987251 223751724062143 505619245326640 8907765...
output:
960885932881190
result:
wrong answer 1st numbers differ - expected: '1665396301509143', found: '960885932881190'