這是一場沒有任何不爆0機會的考試;
可憐的蒟蒻瑟瑟發抖在冷冷的冰雨中。沒有達到我的預想,失分率太高,說明還是不夠熟練,題切得也不夠。不過也正常,我比別人切題要慢一些,而且時間也比別人少一些,只學了很短時間就考試考不好也是常事了,自己還是想開一點。
t1:早就想好了方法,但忘了二分圖匈牙利演算法的模板。趁現在趕緊打一次,以免下次搞事**。
int find(int centre,int u)
}return
0;}
(就是那種會寫km卻不會寫匈牙利的扭曲心情?)
然後就sb的寫了乙個奇怪方法(——工——!!)
km.10 points;
果斷挼掉。
codeforces387d
改之後ac的時候覺得自己太蠢了。
#include
#include
#include
#include
#include
using
namespace
std;
intmap[1001][1001],vis[1001],in[1001],out[1001],link[1001];
int n,m;
int ans=999999999;
int find(int centre,int u)
}return0;}
int solve(int centre)
se+=m-s-cnt;
se+=n-1-cnt;
return se;
}int main()
for(int i=1;i<=n;i++)
printf("%d",ans);
return
0;}
t2:中等網路流,但我是模板俠。。。。雖然知道怎麼做但是。。
哎。(···);
codeforces498c
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int inf=0x3f3f3f3f;
int a[1000001],x[1000001],y[1000001];
struct zk
e[5000001];
int prime[100001];
int mark[100001],dep[1000001],tot,cnt=0,head[1000001];
void add(int u,int v,int w)
int bfs(int s,int t)}}
return dep[t]!=-1;
}int dfs(int u,int t,int minn)
}return ca;
}void getprime(int n)
int dinic(int s,int t)
int num[100001];
int main()
for(int i=1;i<=m;i++)
getprime(100000);
int ans=0;
for(int i=2;i<=sqrt(1e9);i++)
}for(int j=1;j<=n;j+=2)
add(s,j,num[j]);
for(int j=2;j<=n;j+=2)
add(j,t,num[j]);
for(int j=1;j<=m;j++)
ans+=dinic(s,t);
}memset(head,-1,sizeof(head));
cnt=0;
for(int i=1;i<=n;i+=2)
if (judge(a[i])) add(s,i,1);
for(int i=2;i<=n;i+=2)
if (judge(a[i])) add(i,t,1);
for(int i=1;i<=m;i++)
if (a[x[i]]!=1&&a[x[i]]==a[y[i]]) add(x[i],y[i],1);
ans+=dinic(s,t);
printf("%d",ans);
return
0;}//這是乙份re的**
t3:貪心+費用流。
codeforces315c2
這道題的模型並不明顯,但是經過對題目性質的分析,我們就可以找到切入點。
貪心地想,為了在最短的步數之內達到理想狀態,我們可知解題的兩個性質:
首先,對於某乙隻與可配對鞋子不相鄰的鞋子,它或它的配對鞋一定是移動或被移動過的。對於每一對可匹配的鞋子,它們不會同時被移動。
那麼我們可以考慮,將網格內的點分為兩個集合,每個集合內的點都互不相鄰。然後從源點向其中乙個集合的點連一條流量為1權值為0的邊,另乙個集合的點向匯點連一條流量為1權值為0的邊。對於與源點相連的那個集合的點,向相鄰的點連邊,可以匹配的連權值為0的邊,不可匹配的連權值為1的邊。
跑一邊最小費用最大流可以得到答案。
#include
#include
#include
#include
#include
#include
#define maxn 1010
#define maxm 50000+10
#define inf 0x3f3f3f3f
#define ll long long
using
namespace
std;
struct zk
e[maxm];
int head[maxn], cnt;
int dis[maxn];
int pre[maxn];
bool vis[maxn];
int n, m,k;
void add(int u, int v, int w, int c)
; e[cnt] = e1;
head[u] = cnt++;
zk e2 = ;
e[cnt] = e2;
head[v] = cnt++;
}bool spfa(int s, int t)}}
}return pre[t] != -1;
}int minn(int s, int t)
for(int i = pre[t]; i != -1; i = pre[e[i^1].to])
}return cost;
}const
int dir[4][2]=,,,};
int a[3001][3001];
int main()
int s=0,t=(n*m+1);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++) }}
printf("%d",minn(0,t));
return
0;}
總之就是一點,回憶模板久遠,耗時整場比賽。
對寫過做過的學過的知識加強熟悉,寧願多花點時間去敲一遍模板再做題,也不要直接複製貼上模板只寫建圖。
畢竟,正規比賽的時候是沒有模板可以套用的。
對所學知識進行乙個新的自己的理解,提高自己**ac率(**毒瘤無法直視),慢慢讓自己脫離寫一道題20分鐘,改一道題2個小時的困境(心累)。
覺得還是應該打好基礎,不要圖快,自己學不是別人學。別被別人的節奏帶偏,畢竟自己和別人的學習規劃不一樣。
還是一步步來吧,文化知識和oi兩不誤,並不想一直都泡在機房,還是想學一些其他東西,雖然暫時oi學的要慢一點,但我覺得只要不慌一切都行。
自由是我的水
今天沒有去上班,本來說今天早上要更新 的,只可惜,晚上通宵的時候,握著滑鼠都在打瞌睡,最重要的是,當我醒來,到車站搭車回家,在車上檢視昨日的成果,我發現,我昨天打瞌睡的成果,就是乙個無意識的 寫得甚是離奇,我都沒眼看了,看到我就刪了,最後打算現在重寫,既然是現在才重寫,也就是之前我一直在待機狀態。所...
水的我措不及防
問題 j 困難題 時間限制 1 sec 記憶體限制 128 mb 提交 45 解決 10 提交 狀態 討論版 命題人 admin 題目描述 jatc和他的朋友giraffe正在他們的房間裡解決一些問題。giraffe在黑板上寫了乙個陣列a1 a2 乙個整數,這樣1 a1 a2 10 3,然後去了浴室...
我的CodeF水A題之路
codeforces round 359 div.2 a.free ice cream 題意 n個人在排隊,一開始店主有m個冰淇凌,隊伍中第i個人可能是乙個送冰激凌的工人,他會帶給店主 a i 個冰淇凌,也可能是乙個小朋友,他想要 a i 個冰淇凌,當排到乙個小朋友的時候,如果店主現在手裡的冰淇凌數...