这名用户暂未设置签名。
追踪最近的用户名外显变动记录。
最近的文章、讨论、云剪贴板与社区记录
```cpp #include using namespace std; #define MAXN 100005 long long Ha; int n,m,root; vector graph[MAXN]; int siz[MAXN]; int son[MAXN]; int fa[MAXN]; int dep[MAX…
在讨论《Dijkstra 加priority_queue堆优化,可是 RE 爆零了》回复:
@[Zhaoyuhang2008](/user/242524) 按理说应该更大一点的?可是却过了……
在讨论《Dijkstra 加priority_queue堆优化,可是 RE 爆零了》回复:
@[我谔谔](/user/127284) 嗯嗯,我马大哈…… ``` //vector > graph[1505]; vector > graph[500000]; ``` 这里改大了就过了…… 谢谢啦~
如题,下面是我的代码。 在弱化版,有一点分,可是其它点也是RE ``` #include #include #include using namespace std; class Dij { public: int S; struct cmp { bool operator() (pair &a, pair &b) {…
在讨论《56分求助》回复:
而且用 priority_queue 的话不是每次的确是取最短的那个点出来的吗?
在讨论《56分求助》回复:
@[幽竹烟雨](/user/162203) 谢谢,去掉这个就过了,可是我想这样时间复杂度不是就不能保证在 n lg(m) 了吗?
在讨论《56分求助》回复:
换成负数再做最短路,还是不行。 ``` #include #include #include using namespace std; class Dij { public: struct cmp { bool operator() (pair &a, pair &b) { return a.second>b.seco…
是用的堆优化的迪杰斯特拉算法,可是只有54分 :( ``` #include #include #include using namespace std; class Dij { public: struct cmp { //最长路 bool operator() (pair &a, pair &b) { return…
```cpp #include #include using namespace std; int ans=2147483647,cnt=0,n,a[300005],b[300005],c[300005],d[300005]; bool cmp(int x,int y){return b[x]==b[y] ? x b[…
在讨论《求助》回复:
@[小新君qwq](/user/384458) 终于解决问题了,可以看看最后注释那组数据。 ``` #include #include #include #include #include #define For(x) for(int h=head[x],vv=v[h]; h; vv=v[h=nxt[h]]) usin…
在讨论《求助》回复:
刚刚发现长度为1的情况没考虑,现在加上了,还是只有50分 ```cpp #include #include #include #include #include #define For(x) for(int h=head[x],vv=v[h]; h; vv=v[h=nxt[h]]) using namespace st…
给个能出错的数据也行,对拍我拍了好久都没弄出错…… ```cpp #include #include #include #include #include #define For(x) for(int h=head[x],vv=v[h]; h; vv=v[h=nxt[h]]) using namespace std;…
在讨论《洛谷博客公开测试》回复:
前排滋磁
在讨论《dfs行吗?》回复:
@[圣弗朗西斯科](/space/show?uid=29038) 为什么呀?是哪个地方有问题呀?
我是从每个没用过的底点开始dfs,用过了就打个记号,之后都不搜了,看看能不能搜到顶上的点。看起来是 On,可是正确性对不对呀? 还有我直接用 double 了,不知道行不行呀?
在讨论《为什么我只有76分。。。。》回复:
我也发一下我的代码吧 .\_. ```cpp #include #define N 10000 #define M 50000 #define add(x,y) (to[++cnt]=head[x],head[x]=cnt,V[cnt]=y) #define For(x) for(int h=head[x],o=V[h…
在讨论《为什么我只有76分。。。。》回复:
有这么几点吧: \* 你缩点哪里应该是 `ai[belong[d[i].f]]++` 吧?因为看到好想你的 ai 数组代表着缩完点后的编号的入度。 \* 而且按照你这样算的话,会出现一种情况,就是缩完点后,并不是一个连通图,那么就不会出现“明星牛”,而同时也会有入度为 0 的点,你会输出一个数而不是正确答案0。 \*…
在讨论《TLE第三个,90分,求大佬们看看咯》回复:
我觉得你这里 ``` x=x/k; s+=x; y=x+x%k; ``` 有点问题,在算 y 的时候实际上 x 已经改变成“换来的烟数”了,取模的值似乎就没意义了。 ```cpp #include using namespace std; int main() { int z=0,n,k,s=0,x=0,y=0; ci…
在讨论《用的是 二分+树上差分 的方法,不过不知道为什么不对……》回复:
@[Just\_do\_it](/space/show?uid=12820) 啊,好像的确是这里的问题,我稍微改了一下(其实重新打了一遍),谢谢了! 还有一个地方,开始用了 long long 来存,结果也 TLE 了好多,改成 int 就好一点了。 还有,似乎的确压行太过了,过久了就忘了,还是不要压行呀(所以我才重新…
在讨论《全部RE,懵逼,求dalao解疑》回复:
同求 ```cpp #include #define INF 2147483647 #define N 100005 #define Add(x,y) (to[++num]=head[x],head[x]=num,V[num]=y) #define For(x) for(int h=head[x],o=V[h]; h;…
在讨论《用的是 二分+树上差分 的方法,不过不知道为什么不对……》回复:
@[Just\_do\_it](/space/show?uid=12820) 谢谢,不过好像可是这样判断的时候 g[x] 不是一直都是 f[x] 了呀?而且我的程序中,这样写 t 是不存在的(我这里 t 是枚举边时那条边的长度,在 #define For 里面体现的)
在讨论《用的是 二分+树上差分 的方法,不过不知道为什么不对……》回复:
@[lrj124](/space/show?uid=17521) 压在 #define 里了……
在讨论《用的是 二分+树上差分 的方法,不过不知道为什么不对……》回复:
诶呀,贴代码的时候忘记删文操了,不过交题的时候是删了的。
大体思路就是二分一下答案,每次再用差分数组记下每个点代表的边(它连到父亲的边)在几个路程大于 mid 的计划中,若它是所有这样的计划的交集中的一员且最长的那条减去这条能小于等于 mid,那么说明 mid 是可以的。 大概就是这样,不过却 WA 了,请大佬帮忙看看程序行吗?谢谢~ LCA 部分的这段程序交过模板题,应该是…
在讨论《90分求救》回复:
诶亚,过了,结果是初值不够大,你把你的 0x7ffffff 改成 9223372036854775807ll 即可(这个数最好背下来:)) ```cpp #include #include double m,l,n,dp[1001],a[1001],b[1001]; int main() { scanf("%lf%lf…
在讨论《90分求救》回复:
诶亚,程序帖炸了,再发一次吧 ```cpp #include #include using namespace std; long long W,L,i,j,n,v,s,w[1005]; double t[1005],dp[1005],T; int main(){ scanf("%lld%lld%lld",&W,&L,…
在讨论《90分求救》回复:
我的也是90分,不过也不知道为什么是错的…… ```c++ #include #include using namespace std; long long W,L,i,j,n,v,s,w[1005]; double t[1005],dp[1005],T; int main(){ scanf("%lld%lld%lld…
下载了一个样例,第一个点输入是15,可是输出却是 1/5? ```cpp 1/1 1/2 1/3 1/4 1/5 2/1 2/2 2/3 2/4 3/1 3/2 3/3 4/1 4/2 5/1 ``` 题目中的顺序是从第一行往左下一遍遍过的,那第15个应该是在5/1哪里呀?
在讨论《break到底有什么作用???》回复:
不过后交了一下这个程序,发现是 WA 了,然后想了想,WA20 应该这样一个原因: 不break 的话,你看一下程序中这两段: ```c++ if((a[i][j]==k-1)&&(i!=1)&&(j!=n)&&(a[i-1][j+1]==0)) {a[i-1][j+1]=k;break;} if((a[i][j]==…
在讨论《break到底有什么作用???》回复:
\* 我觉得 break 还是相当有用的,相同情况下,你用很多 if else 会比你用很多 break(或 continue) 快很多 \* 它就是在一堆中直选一个的 if else 中算完要算的后面就不判断直接跳出,少了些判断的时间,积少成多。 \* 亲自实践,你去做一下洛谷这里 [1092-虫食算](https:…