1 #include<bits/stdc++.h> 2 using namespace std; 3 #define LL long long 4 #define inf 0x3f3f3f3f 5 #define pii pair<int,int> 6 #define mp make_pair 7 8 const int maxn=310; 9 vector<pii>g[maxn]; 10 int n; 11 int a[maxn]; 12 bool inq[maxn]; 13 int d[maxn]; ...
vector<pair<int,int>>G[305];intn;voidSPFA(){//存在负权求最长路for(inti=0;i<=n;i++){dis[i]=0,vis[i]=0;} vis[0]=1; queue<int>p; p.push(0);while(!p.empty()){intnow=p.front();p.pop();for(inti=0;i<G[now].size();i++){if(dis[G[now][i].first]<dis[now]+...
1#include<bits/stdc++.h>2usingnamespacestd;3#defineLL long long4#defineinf 0x3f3f3f3f5#definepii pair<int,int>6#definemp make_pair78constintmaxn=310;9vector<pii>g[maxn];10intn;11inta[maxn];12boolinq[maxn];13intd[maxn];14boolspfa(){15queue<int>q;16memset(d,-inf,sizeof(d...
对于id选择器和标签选择器来说其实很好实现,关键在于后代选择器,并且后代选择器可以出现多个属性。这里使用递归操作,每次找到符合最后一个属性条件的元素,后面的属性在调用本函数判断父元素。 代码 #include<cstdio>#include<iostream>#include<algorithm>#include<string>#include<cstring>#include<vector>#include<stack...
目录 CSP201809-4 再卖菜 60分dfs 100分建立差分约束系统 这场打完就忘记了。当时这题一直在想怎么建立差分约束系统,最后没建出来0分,队友搜索暴力剪纸可能还有记忆化过的,其他人有的都是搜索拿的几十分, 用最暴力的写法直接搜即可。 60分dfs 菜的价格在1~100之间,直接dfs枚举菜的价格即可。300^n复杂度?其实...
CCF-CSP题解 201809-4 再卖菜 碎碎念。。近视加老花,还以为第二天除了第二家范围在100以内别的都不确定,于是x**算的记搜复杂度超时了。还鼓捣着什么差分区间最长路,虽然有大神用差分区间做出来了,然而自己并没有看懂。 其实就是一个记忆化搜索。搜索时用vis[n][300][300]记录访问状态。第二、三维数组下标...
CCF CSP 201809-4 再卖菜 思路: 1.设ai是第一天第i家店的菜价,bi是第二天第i家店的菜价; 2.根据题意有: a2=2b1-a1+k (k=0,1) ai+1=3bi-ai-1-ai+k (k=0,1,2;1<i<n) an=2bn-an-1+k (k=0,1) 3.我们知道a1是小于等于2b1且大于零的,所以我们可以让a1从1开始dfs到2b1,确定了a1...
[csp-201809-4]再卖菜 差分约束or记忆化搜索 先更新第一个做法:差分约束 转化成最长路,求出的每一个解是满足差分方程的最小值 spfa求最短路 对于边(x->y) 有: 1if(dis[y] > dis[x] + a[i].d) dis[y]=dis[x]+a[i].d; dis[y]的初始值为INF,dis[y]会是满足所有约束条件之中所有可能的...