2017.11.30第十四周周中总结
来源:互联网 发布:印度尼西亚华人知乎 编辑:程序博客网 时间:2024/05/19 16:50
这个周仍旧尽量有空闲时间就到实验室呆着,到现在,状压dp一共做了4道题了,都是课件上的原题。。还有不少原题~~今晚继续做,还得补补昨天的题
昨天比赛单打的,A了一个D题,D比较简单,就是分组,唯一麻烦一点的就是要对应着输出相同数值 的位置,建两个数组存一下位置,然后查找输出就可以了、、
然后做的B题,也不是很难,关键是输出的要是字典排序最小的答案,昨天没有做出来,TLE了,后来回去想了一下,感觉有可以优化的地方,
然而,刚才做的时候,一直矛盾。。就搜了题解,结果发现题解的循环比我的更多!!不应该是TLE啊,于是就再重新看,结果,发现!!做的地方竟是因为数组的下标都是计算的,所以超时!!记录一下再用,就A了!!!
AC的:
for(i=0;i<a.size();i++) { v=a[i]-'A'; if(l[v]>r[v]) {for(int j=k;j<26;j++) { if(l[j]<r[j]&&j!=(v)) {k=j; if(j<v) {l[v]--;l[j]++;a[i]='A'+j;++ans;} else{ if(r[v]>0){l[v]--;r[v]--;} else{l[v]--;l[j]++;a[i]='A'+j;++ans;} } break; } } } }
TLE的:
for(int i=0;i<strlen(a);i++){ if(l[a[i]-'A'+1]>r[a[i]-'A'+1]) {for(int j=k;j<=26;j++) {if(l[j]<r[j]&&j!=(a[i]-'A'+1)) {k=j; if(j<a[i]-'A'+1) {l[a[i]-'A'+1]--;l[j]++;a[i]='A'+j-1;} else{ if(r[a[i]-'A'+1]>0){l[a[i]-'A'+1]--;r[a[i]-'A'+1]--;} else { l[a[i]-'A'+1]--;l[j]++;a[i]='A'+j-1; } } break; } } }}
C题好像也不太难,是B类的嘛,但是还没看。。一会想着看看,然后搜搜题解看看,差不多就不做了,得赶紧刷状压dp了
阅读全文
0 0
- 2017.11.30第十四周周中总结
- 2017.12.3第十四周周总结
- 2017.11.9第十一周周中总结
- 2017.11.16第十二周周中总结
- 2017.11.24第十三周周中训练总结
- 第一周周中总结
- 第二周周中总结
- 第三周周中总结
- 第四周周中总结
- 第五周周中总结
- 第七周周中总结
- 2017.11.12第十一周周总结
- 2017.11.19第十二周周总结
- 2017.11.26第十三周周总结
- 2017开学训练第一周周中总结
- 2017开学训练第二周周中总结
- 2017.9.7开学第二周周中总结
- 2017暑假训练第三周周中总结
- Spring Boot WebChat 网页聊天室
- 面试常见问题:如何加密Web项目中配置文件中的密码?
- Java8新特性
- 【Scikit-Learn 中文文档】新异类和异常值检测
- Ubuntu安装及配置
- 2017.11.30第十四周周中总结
- jsp小结
- Linux笔记-2
- 【Scikit-Learn 中文文档】密度估计
- Java实现获取前、后N天日期的函数分享2
- 【日刷】LA2995
- 证件OCR识别360度全面解析
- 欢迎使用CSDN-markdown编辑器
- HTML点击全选按钮商品全选(只有按钮)