C++
曾经作为一名OIer的经历
I am postman
这个作者很懒,什么都没留下…
展开
-
重要的逆向思维
第一题liouzhou_101住在柳侯公园附近,闲暇时刻都会去公园散散步。很那啥的就是,柳侯公园的道路太凌乱了,假若不认识路就会走着走着绕回原来的那条路。liouzhou_101就开始自己YY,假若给他当上那啥管理者,就会想尽量减少道路回圈的个数,但是大范围的改变道路终归不是什么良策。经过调查,发现公园有N个景点,为了显示景点之间的优越性,我们按照1,2,…,N来把这N个景点编号,原创 2013-11-03 01:33:39 · 1160 阅读 · 0 评论 -
广东工业大学新生赛决赛E题
Problem E: 倒水(Water)Description一天,CC买了N个容量可以认为是无限大的瓶子,开始时每个瓶子里有1升水。接着~~CC发现瓶子实在太多了,于是他决定保留不超过K个瓶子。每次他选择两个当前含水量相同的瓶子,把一个瓶子的水全部倒进另一个里,然后把空瓶丢弃。(不能丢弃有水的瓶子)显然在某些情况下CC无法达到目标,比如N=3,K=1。此时原创 2017-03-27 08:57:10 · 401 阅读 · 0 评论 -
联合国大楼
// by BNU_LZM #includeint map[60][60];int main(){ freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); int n; scanf("%d", &n); int cnt = 0; for(int i = 1; i <= n; i++) { for(原创 2017-03-14 21:24:08 · 460 阅读 · 0 评论 -
环形跑道
// by BNU_LZM#includeconst int maxn = 100000+10;int n, p[maxn], a[maxn];int main(){ freopen("in.txt", "r", stdin); int T; scanf("%d", &T); while(T--) { scanf("%d", &n); for(int i = 1;原创 2017-03-17 14:17:38 · 554 阅读 · 0 评论 -
广东工业大学新生赛决赛H题
Problem H: tmk买礼物Description今天是校赛的日子,为了庆祝这么喜庆的日子,TMK打算买些礼物给女票LSH庆祝一下。TMK进入了雪梨超市,然后刚踏入的一瞬间,店主就对TMK说:“恭喜你成为了本店第2147483647位顾客,本店在搞一个活动,对本店第2147483647位顾客进行赠送活动。你先看看你有多少钱?”TMK一摸口袋,发原创 2017-03-26 21:53:11 · 489 阅读 · 0 评论 -
广东工业大学新生赛决赛B题
Problem B: 占点游戏Description众所周知的是,TMK特别容易迟到,终于在TMK某次又迟到了之后,Maple怒了,Maple大喊一声:“我要跟你决一死战!”然后Maple就跟TMK玩起了一个关于占点的游戏。Maple在一个无限展开的只有整数点的二维平面上找到两个点,由TMK和Maple分别操控这两个点,两原创 2017-03-30 15:08:51 · 479 阅读 · 0 评论 -
危险的组合
// by BNU_LZM#include#includeint a[40];int main(){ freopen("in.txt", "r", stdin); freopen("out.txt", "w", stdout); memset(a, 0, sizeof(a)); a[0] = a[1] = a[2] = 0; a[3] = 1; for(int i = 4原创 2017-03-21 20:13:00 · 893 阅读 · 0 评论 -
Kruskal
#include#include#include#include#include#include#includeusing namespace std;void init(){ freopen("practicein.txt","r",stdin); freopen("practiceout.txt","w",stdout);}int cmp(const int i,原创 2017-03-25 08:22:07 · 334 阅读 · 0 评论 -
wiki-3052-多米诺-二分图匹配
题目:一个矩形可以划分成M*N个小正方形,其中有一些小正方形不能使用。一个多米诺骨牌占用两个相邻的小正方形。试问整个区域内最多可以不重叠地放多少个多米诺骨牌且不占用任何一个被标记为无法使用的小正方形。#include#include#include#includeusing namespace std;int n,m,k,size=0,g;int can[60][60],code原创 2013-11-16 18:16:52 · 1308 阅读 · 0 评论 -
Dijkstra
#include#include#include#include#include#include#includeusing namespace std;const int INF = 1000000000;const int maxn = 100010; struct Edge{ int from, to, dist; Edge(int u, int v, int d原创 2017-03-25 08:23:29 · 370 阅读 · 0 评论 -
spfa
#include#include#include#include#include#include#includeusing namespace std;void init(){ freopen("practicein.txt","r",stdin); freopen("practiceout.txt","w",stdout);}bool spfa(int s){原创 2017-03-25 08:24:31 · 466 阅读 · 0 评论 -
素数环
//by BNU_LZM#include#include#include#include#includeusing namespace std;const int maxn = 110;int n, a[maxn], isp[1010];void solve(int *A, int cur){ if(cur == n && isp[A[1]+A[n]]) { fo原创 2017-03-11 19:19:38 · 271 阅读 · 0 评论 -
八数码难题-rqnoj-70
虽然是一道搜素,但还是有点麻烦。因为是求最优解,所以用到了队列,判重用哈希,就把状态看成一个九位数,用“map”不会超内存。#include#include#include#include#include#include#includeusing namespace std;struct node{ int state[9]; int step;}原创 2013-05-04 15:24:09 · 902 阅读 · 0 评论 -
8皇后问题
#include#include#include#includeusing namespace std;const int maxn = 30;int a[maxn], vis[4][110], tot = 0;void solve(int n, int *A, int cur){ if(cur == n) { for(int i = 1; i <= n; i++) p原创 2017-03-11 17:30:17 · 260 阅读 · 0 评论 -
困难的串
// by BNU_LZM#include#include#include#includeusing namespace std;const int maxn = 110;int a[maxn], cnt = 0, l, k;int solve(int cur){ if(cnt == k) { for(int i = 0; i < cur; i++) printf("原创 2017-03-13 20:50:31 · 445 阅读 · 0 评论 -
天平难题
#include#include#include#includeusing namespace std;const int maxn = 7;struct Tree{ double l, r; Tree() : l(0), r(0) {}};bool vis[1<<maxn];double r, w[maxn], sum[1<<maxn];vector tree[1原创 2017-03-18 14:59:34 · 541 阅读 · 1 评论 -
生成排列
// by BNU_LZM#include#include#includeusing namespace std;const int maxn = 1010;int a[maxn], p[maxn];void print_permutation1(int n, int *P, int cur){ if(cur == n) { for(int i = 1; i <= n;原创 2017-03-11 15:30:41 · 310 阅读 · 0 评论 -
埃及分数问题
// by BNU_LZM#include#include#include#includeusing namespace std;int ans[1010], v[1010], maxd;int gcd(int a, int b){ return b == 0 ? a : gcd(b, a%b);}int get_from(int a, int b){ int i;原创 2017-03-14 18:06:57 · 310 阅读 · 0 评论 -
和为0的四个值
// by BNU_LZM#include#includeusing namespace std;const int maxn = 4010;int a[maxn], b[maxn], c[maxn], d[maxn], w[maxn*maxn];int erfenl(int x, int y, int v){ int m; while(x < y) { m = x+(原创 2017-03-14 22:03:47 · 392 阅读 · 0 评论 -
生成子集
// by BNU_LZM#include#include#includeusing namespace std;const int maxn = 1010;int a[maxn], s[maxn];void print_set1(int n, int *S, int cur){ for(int i = 1; i <= cur; i++) printf("%d ", a[S[原创 2017-03-11 16:22:31 · 307 阅读 · 0 评论 -
编辑书稿
// by BNU_LZM#include#include#includeusing namespace std;const int maxn = 10;int n, a[maxn];bool check(){ for(int i = 0; i < n-1; i++) if(a[i] > a[i+1]) return false; return true;}in原创 2017-03-22 20:09:57 · 504 阅读 · 0 评论 -
万圣节后的早晨
// by BNU_LZM#include#include#include#include#includeusing namespace std;char map[20][20];int s[4], t[4], d[300][300][300];int dx[] = {0, 0, 0, 1, -1};int dy[] = {0, 1, -1, 0, 0};vector原创 2017-03-20 22:30:28 · 431 阅读 · 0 评论 -
宝箱
// by BNU_LZM#include#includeusing namespace std;int main(){ int n, s1, s2, v1, v2; scanf("%d%d%d%d%d", &n, &s1, &v1, &s2, &v2); long long ans = 0; if(s1 > s2) { swap(s1, s2); swap(v1, v2);原创 2017-03-21 22:27:08 · 519 阅读 · 0 评论 -
旋转游戏
// by BNU_LZM#include#include#includeusing namespace std;int line[8][8] = { {0, 2, 6, 11, 15, 20, 22}; {1, 3, 8, 12, 17, 21, 23}; {10, 9, 8, 7, 6, 5, 4}; {19, 18, 17, 16, 15, 14, 13};};in原创 2017-03-23 21:19:33 · 387 阅读 · 0 评论 -
带宽
// by BNU_LZM#include#include#include#include#includeusing namespace std;const int maxn = 10;vector u, v;int id[256], letter[100];int main(){ char s[100]; scanf("%s", s); int n = 0;原创 2017-03-18 14:58:26 · 442 阅读 · 0 评论 -
倒水问题
// by BNU_LZM#include#include#include#include#includeusing namespace std;struct node{ int v[3], d; bool operator < (const node &rhs) const { return d > rhs.d; }};int t, cap[3], ans[21原创 2017-03-13 20:49:24 · 527 阅读 · 0 评论 -
wiki-1004-四子连棋
恶心!!!写了好久,调了好久,恶心!!!从中领悟了一个道理“复制有风险,粘贴需谨慎。”(因为程序中有类似的部分,所以就复制粘贴,结果忘记改变量名了,找了好久......555555555555555555555555555)#include#include#include#include#include#include#include#includeusing na原创 2013-10-16 17:23:45 · 1829 阅读 · 0 评论 -
快速幂计算
// by BNU_LZM#include#includeusing namespace std;const int maxn = 1010;int ans[maxn], n;bool dfs(int d, int maxd){ if(ans[d] == n) return true; if(d == maxd) return false; int m = 0; for原创 2017-03-31 21:08:28 · 380 阅读 · 0 评论 -
广东工业大学新生赛决赛F题
// by BNU_LZM#include#include#include#includeusing namespace std;const int maxn = 100000+5;struct Edge{ int u, v, d; Edge(int u, int v, int d) : u(u), v(v), d(d) {}};vector edges;vecto原创 2017-03-30 12:56:18 · 417 阅读 · 0 评论 -
单调队列
// by BNU_LZM#include#include#include#include#include#include#includeusing namespace std;const int maxn = 1010;struct node{ int p, v;}q[maxn];int n, k, f, r, a[maxn];void init(){原创 2017-03-13 20:53:45 · 210 阅读 · 0 评论