网站被黑了你会怎么想你该怎么做,网站的兼容性,国际军事新闻联播,网站信息化建设昨天刚刚考完试然后就翘晚自习跟今天上午两节课的语文和英语做做noip2014的题目。然后去评测了一番。首先day1day2的t1基本都是模拟#xff0c;一看就出思路那种#xff0c;直接ac掉。代码如下 day1t1#xff1a;#includeiostream#define maxn 209using namespace s… 昨天刚刚考完试然后就翘晚自习跟今天上午两节课的语文和英语做做noip2014的题目。然后去评测了一番。首先day1day2的t1基本都是模拟一看就出思路那种直接ac掉。代码如下 day1t1#includeiostream #define maxn 209 using namespace std; int map[5][5] {{0, 0, 1, 1, 0}, {1, 0, 0, 1, 0}, {0, 1, 0, 0, 1}, {0, 0, 1, 0, 1}, {1, 1, 0, 0, 0}}; int n,t1,t2; int a[maxn], b[maxn]; int sum1,sum2; int m1,m2; int main() { cinnt1t2; for(int i 0; i t1; i) cina[i]; for(int i 0; i t2; i) cinb[i]; while(n--) { sum1map[a[m1]][b[m2]]; sum2map[b[m2]][a[m1]]; if((m1) t1) m1-t1; if((m2) t2) m2-t2; } coutsum1 sum2endl; return 0; } 用一个二维数组模拟这几种情况的得分。然后用思路论好了比较简单。 day2t1 这个题我真的非常怀疑是否为普及组的题一个穷举模拟然后就过了。本以为要用贪心我懒得找bug所以直接提交结果就过了。666mdzz。 代码#includeiostream using namespace std; int n,maxn,sum,d; int x[22],y[22],s[22],f[130][130]; int main() { cindn; for (int i0;in;i) cinx[i]y[i]s[i]; for (int i0;i129;i) for (int j0;j129;j) for (int k0;kn;k) if (x[k]i-d x[k]id y[k]j-d y[k]jd) f[i][j]s[k]; for (int i0;i129;i) for (int j0;j129;j) if (f[i][j]maxn) maxnf[i][j]; for (int i0;i129;i) for (int j0;j129;j) if (f[i][j]maxn) sum; coutsum maxnendl; return 0; } day1t2可以有点难度了求联合全值嗯我看第一眼的时候是个图论的题就是穷举点然后用几个算法优化一下floyed应该能过3个点吧dijstra能过7个吧。自己用笔算的复杂度。呵呵……。之后我就敲了dijstra代码然后硬生生的过了8个点。两个点tle。算了不使spfa了我就直接看题解了。结果发现这是一道大水题。水到无极限的数学题。妈的我就是大牛们口中的二逼青年。具体看题解-_-。然后找这他们的思路打了代码。嗯卡时间了一样的代码交了三次才ac。代码 #includeiostream #define maxn 200001 using namespace std; struct Edge { int first; int next; }edge[maxn]; long long s[maxn]; int w[maxn]; int max1[maxn],max2[maxn]; void sphdehanshu(int x,int max1,int max2) { if(xmax1){max2max1;max1x;} else if(xmax2) max2x; } int n,sum1,sum2,first,next; int main() { cinn; for(int i1;in-1;i) cinedge[i].firstedge[i].next; for(int i1;in;i) cinw[i]; for(int i1;in-1;i) { firstedge[i].first; nextedge[i].next; s[first]s[first]w[next]; s[next]s[next]w[first]; sphdehanshu(w[next],max1[first],max2[first]); sphdehanshu(w[first],max1[next],max2[next]); } for(int i1;in;i) if(max1[i]*max2[i]sum1)sum1max1[i]*max2[i]; for(int i1;in-1;i) { firstedge[i].first; nextedge[i].next; sum2(sum2(s[first]-w[next])*w[next] % 10007) % 10007; sum2(sum2(s[next]-w[first])*w[first] % 10007) % 10007; } coutsum1 sum2endl; return 0; } day2t2这个题就是道图论呗先倒着搜一遍去掉无关点然后在用堆优化的dijstra或者bfs找最短路好了。然后呢本以为会ac结果输出的时候把endl打在前面导致一片WA声。改过来ac掉。 代码#includecstdio #includeiostream #includecstring #includequeue using namespace std; int n,m,x,y,s,t,sum,cnt; int head[20010],nxt[500000],to[500000],dis[20010]; int nhead[20010],nnxt[500000],nto[500000],ans; bool dvis[20010],fky[20010],vis[20010]; queue int dl,js; void cr(int x,int y) { sum; nxt[sum] head[x]; head[x] sum; to[sum] y; } void ncr(int x,int y) { cnt; nnxt[cnt] nhead[x]; nhead[x] cnt; nto[cnt] y; } void dfs(int x) { for (int tp nhead[x];tp;tp nnxt[tp]) { if (!dvis[nto[tp]]) { dvis[nto[tp]] true; dfs(nto[tp]); } } } void ndfs(int x) { for (int tp nhead[x];tp;tp nnxt[tp]) { if (!fky[nto[tp]]) { fky[nto[tp]] true; ndfs(nto[tp]); } } } void bfs(int x) { dl.push(x); js.push(0); vis[x] true; while (!dl.empty()) { if (dl.front() t) { ans js.front(); return; } for (int tp head[dl.front()];tp;tp nxt[tp]) { if (!fky[to[tp]] !vis[to[tp]]) { dl.push(to[tp]); js.push(js.front()1); vis[to[tp]] true; } } dl.pop(); js.pop(); } } int main() { cinnm; for (int i 1;i m;i) { cinxy; cr(x,y); ncr(y,x); } cinst; dvis[t] true; dfs(t); for (int i 1;i n;i) { if (!dvis[i]) ndfs(i); } bfs(s); if (ans || s t) coutansendl; else cout-1endl; return 0; } day1t3哦呵呵直接模拟超时了我感觉是这样的。于是写了个背包嗯不错过了3个点。最后抄了题解把本题ac掉了。没想到它就是个背包题。早知道就认真写写了。 代码#include cstring #include cstdio #includeiostream int n,m,k,i,j,s,u,v,ans; int f[10002][1002]; int top[10002],bot[10002]; int up[10002],down[10002]; int min(int a,int b) {return(ab?a:b);} int main() { scanf(%d%d%d,n,m,k); for (i0;in;i) scanf(%d%d,up[i],down[i]); for (i0;in;i) top[i]m1; for (i1;ik;i) { scanf(%d%d%d,s,u,v); bot[s]u; top[s]v; } memset(f,0x3f,sizeof(f)); for (i1;im;i) f[0][i]0; for (i1;in;i) { for (j1;jm;j) { uj-up[i-1]; if (ubot[i-1] utop[i-1]) f[i][j]min(f[i-1][u]1,f[i][j]); if (u0) f[i][j]min(f[i][u]1,f[i][j]); } for (jm;jm-up[i-1] j1;--j) { f[i][m]min(f[i][m],f[i][j]1); if (jbot[i-1] jtop[i-1]) f[i][m]min(f[i-1][j]1,f[i][m]); } for (jbot[i]1;jtop[i];j) { ujdown[i-1]; if (ubot[i-1] utop[i-1]) f[i][j]min(f[i-1][u],f[i][j]); } } ans0x3f3f3f3f; for (ibot[n]1;itop[n];i) ansmin(ans,f[n][i]); if (ans0x3f3f3f3f) printf(1\n%d,ans); else { ansk; for (in-1;i0;--i) { if (top[i]m) { ans--; for (jbot[i]1;jtop[i];j) if (f[i][j]0x3f3f3f3f) { ans; printf(0\n%d,ans); return 0; } } } printf(0\n0); } } day2t3解方程 比较呵呵了看一眼没思路嗯打样例数据。一片WA声想起。 看题解似乎是道数论的题目。去模……去***的。我数学抛物线还没好好学跟我扯这些。。。 然后Candy跟我说这道模拟会拿30分高精50分。好吧。早知道我就做做了。 总的来说第一遍ac的总分100100803000310分 考试认真一点就再加上方正心态把最后一问写个模拟就可以 100100803010030460分。 后悔也没用了吃一斩长一智。 转载于:https://www.cnblogs.com/srpihot/p/6305469.html