8-9 DAIRY
来源:互联网 发布:淘宝几块钱包邮的秘密 编辑:程序博客网 时间:2024/06/06 00:05
今天考试好像没有出现什么问题,除了不会做就没有啥了= =还是值得庆祝一下应试能力的提升
最近要好好学一下linux ubuntu的各类操作,为考试做准备
考试 8:00-12:00 & 讲题14:00-14:40
T1 30分 除了n方暴力实在是绞尽脑汁没想出其他做法,然后自己稍微优化了一下,结果没什么用,还是30分。
T2 0分 暴力dfs写挂了,个人认为对dfs不熟练占一大部分原因,主要体现在回溯,dfs(now+1)后的取消标记一类事情没有深刻理解。。?
T3 0分 看到莫比乌斯函数就放弃了,而且那个数学公式也不是很懂….最后十分钟想打一下10%的,但是发现理解不了公式,连循环都不知道写啥就交卷了….数学功底还是要很扎实啊….(不过这题朱老师说是个好(nan)题
大概讲不到15分钟的正解,其余时间都是听其他同学部份份的做法与思路,正解部分过得很快,未完全懂。
讲课14:40-17:30
朱老师今天讲的是动态规划(常见题型、基本模型、举例) 我还是不太理解“最长公共子序列”中的状态转移方程,但是手推的时候觉得这个方程没错,只是不知道怎么证明是对的。
认识了多种类型的动态规划。线性(一条线or两条线or k条线)、区间型、平面(矩阵)型,还未讲树型和图型….我还有一个收获就是对状态、阶段 和 dp数组的维度有了更多的认识。
改题19:00-22:00
同学建议我备联赛就只要改T1,然后我兴高采烈地又看了一遍solution。最后总结,我还是先复习一下线段树?或者什么别的知识点?感觉就是:道理我都懂,代码打不出。
于是我算好时间,开始打虫食算。22:00打完往博客里一丢就回来了,然后写今天的日记。虫食算还有很多编译错误和细节错误blabla,没时间改了,先贴在这里(按昨天的思路打的代码):
【p1092 虫食算】
#include<bits/stdc++.h>using namespace std;int n, tmp, tmp_next;char s1[30], s2[30], s3[30];struct node{ char ch; int num;//字母对应的数字}s[90];char numb[35];//数字对应的字母int pp(int number, int charr){ if(numb[number]) return 1; return 0;}int checknum(int m){//数字是否匹配字母 if(numb[m] >= 'A' && numb[m] <= 'Z') return 1; return 0;}int checkchar(node letter){ if(letter.num >= 0 && letter.num <= n) return 1; return 0;}void pp(node letter, int m){ letter.num = m; numb[m] = letter.ch;}void failpp(node letter, int m){ letter.num = 30; numb[m] = ' ';}void dfs(int now){ if(now % 3 == 2){ if(now == (3*n-1)){ if(tmp_next != 0) return; } tmp = s[now-1].num + s[now-2].num; tmp_next = tmp - n; if(checkchar(s[now])){ if(s[now].num != ((tmp + tmp_next) % n)) return; else{ tmp_next = (tmp + tmp_next)/n; dfs(now+1); failpp(s[now], (tmp + tmp_next) % n); } } else{ if(checknum((tmp+tmp_next)%n)) return; tmp_next = tmp / n; pp(s[now], (tmp + tmp_next) % n); dfs(now+1); failpp(s[now], s[now].num); } } if(now % 3 == 1 || now % 3 == 0){ if(!(checkchar(s[now]))){ for(int i = 0; i <= 9; i++){ if(!(checknum(i))){ s[now].num = i; numb[i] = s[now].ch; } } } dfs(now+1); numb[s[now].num] = ' '; s[now].num = 30; }}int main(){ freopen("p1092.in", "r", stdin); freopen("p1092.out","w",stdout); scanf("%d", &n); for(int i = 0; i <= 9; i++) numb[i] = ' '; int j = 0; for(int i = 0; i < n; i++){ scanf("%c", &s1[i]); s[3 * j].ch = s1[j]; s[3 * j].num = 13; j++; } j = 0; for(int i = 0; i < n; i++){ scanf("%c", &s2[i]); s[3 * j + 1].ch = s2[j]; s[3 * j + 1].num = 13; j++; } j = 0; for(int i = 0; i < n; i++){ scanf("%c", &s3[i]); s[3 * j + 2].ch = s3[j]; s[3 * j + 2].num = 13;] j++; } tmp = 0; dfs(0); return 0; }
最近要把noip知识点的一个课件全部学(复习)完….已经列了个计划,但是要牺牲睡眠时间…
- 8-9 DAIRY
- 8-8 DAIRY
- 9-2 DAIRY
- 9-3 DAIRY
- 9-7 DAIRY
- 9-10 DAIRY
- 9-11 DAIRY
- 9-16 DAIRY
- 9-24 DAIRY
- 9-26 DAIRY
- 9-27 DAIRY
- 9-28 DAIRY
- 8-7 DAIRY
- 8-11 DAIRY
- 8-10 DAIRY
- 8-12 DAIRY
- 8-13 DAIRY
- 8-14 DAIRY
- 【jzoj5232】【NOIP2017模拟A组模拟8.5】【带权排序】【线段树】
- array_merge() 函数的用法
- 关于glibc的system函数调用实现
- three.js 开发中遇到的坑
- 用npm离线安装webpack
- 8-9 DAIRY
- E: Could not get lock /var/lib/dpkg/lock
- BT.656
- 借助Stetho在Chrome上调试Android数据库
- hdu 1069 Monkey and Banana【普通dp】
- 20170809 servlet 零散小结1
- 技术书写作你要知道的几件事
- 中缀表达式的计算(栈的应用)
- 方法传参