2019年3月11日

LA3942_RememberTheWord

摘要: #include #define _for(i,a,b) for(int i=a;i&layers){ int u = 0, n = strlen(s); for(int i = 0; i = 0; i--){ vectorlayers; trie.query2(s + i, layers); for(int j =... 阅读全文

posted @ 2019-03-11 16:42 nbsanshi 阅读(95) 评论(0) 推荐(0) 编辑

2019年3月10日

201809-3_元素选择器(90分)

摘要: 本题难点有二: 1. 递归建树。(与子树二叉树篇的那道看图建树类似,后者是按以行为主导) a. 明确树的数据结构。树的数据结构可以用指针或者数组,这里直接采用数组css存储各结点值的信息,children存储每个结点的直接后代的的位置。其中,结点编号直接用行号。 a. 明确递归函数当前的任务。这里是 阅读全文

posted @ 2019-03-10 10:46 nbsanshi 阅读(232) 评论(0) 推荐(0) 编辑

2019年3月9日

UVA - 1262 Password (注意空集的特殊情况)

摘要: 收获: 1. 应该从审题的时候就要留意特殊情况的判断,并且最好要将它们列出来,不然后面的代码实现之后很容易忘掉。 2. 有时候序号从1开始的要求转换成从0开始会更好操作。例如 1 2 3 | 4 5 6, 这两组,问3在哪一组,1/3 = 2/3 != 3/3,可见同一组的数同时用除法向下取整的函数 阅读全文

posted @ 2019-03-09 14:55 nbsanshi 阅读(94) 评论(0) 推荐(0) 编辑

2019年3月8日

CCF201809-5_20分

摘要: #include #define _for(i,a,b) for(int i=a;i= i - min(m, i); j--){ A[i] += k[i-j-1]*A[j] % Q; } A[i] %= Q; if(i >= l) cout > m >> l >> r && m){ _for(i,0,m) ... 阅读全文

posted @ 2019-03-08 15:00 nbsanshi 阅读(156) 评论(0) 推荐(0) 编辑

2019年3月7日

UVA - 247 Calling Circles

摘要: #include #define _for(i,a,b) for(int i=a;iid; mapname; int getID(string &s) { if(id.count(s)) return id[s]; id[s] = id.size() - 1; name[id[s]] = s; return id[s]; } void floy... 阅读全文

posted @ 2019-03-07 22:00 nbsanshi 阅读(93) 评论(0) 推荐(0) 编辑

ccf_再卖菜

摘要: #include<bits/stdc++.h> using namespace std; const int maxn = 300 + 3; const int maxv = 200; int n; int A[maxn], B[maxn]; bool finish; bool solve(int 阅读全文

posted @ 2019-03-07 21:14 nbsanshi 阅读(216) 评论(0) 推荐(0) 编辑

2019年3月5日

UVA - 116 Unidirectional TSP (动态规划)

摘要: 收获如下: 1. 如果用递归求解(当然不会去用非记忆化搜索, 否则太耗时,复杂度将降到和用回溯法求解一样是指数级的了) 则务必注意d数组的初值问题:1. 起点位置直接用所给数据赋值。2. 其他点赋合适的特殊值,以作标记数组,若不方便,可以考虑另开辟vis进行标记。 2. 如果用递推求解。 3. 打印 阅读全文

posted @ 2019-03-05 09:14 nbsanshi 阅读(150) 评论(0) 推荐(0) 编辑

2019年3月2日

快速排序和找到第k大的数字

摘要: 快速排序: void quick_sort(int* A, int x, int y) { if(y - x <= 1) return; // 2 numbers at least int base = A[x]; int p = x + 1, q = y - 1; while(p < q){ wh 阅读全文

posted @ 2019-03-02 15:56 nbsanshi 阅读(115) 评论(0) 推荐(0) 编辑

2019年3月1日

UVA 10603 Fill(倒水,状态空间搜索)

摘要: #include using namespace std; const int maxd = 200 + 5; int a, b, c, d; int vis[maxd][maxd]; int ans[maxd]; struct Node{ int x[3]; int dist; bool operator node.dist; } }; void upd... 阅读全文

posted @ 2019-03-01 21:35 nbsanshi 阅读(128) 评论(0) 推荐(0) 编辑

2019年2月28日

uva129_Crypton Factor(有个疑点,为什么递归边界是cnt++==n,每执行一次solve产生一个解?)

摘要: 因此,不要误以为此题没有回溯的过程,只有不断向下的过程。 对应到代码中,就是递归函数的入口点需要进行考虑。 if(ok){ //return solve(cur + 1); 这是不对的,这样将造成无法继续循环,即无法回溯。 if(!solve(cur + 1)) return 0; //返回是有条件 阅读全文

posted @ 2019-02-28 21:12 nbsanshi 阅读(178) 评论(0) 推荐(0) 编辑

导航