2017暑假石家庄一中
来源:互联网 发布:淘宝推广计划 编辑:程序博客网 时间:2024/04/28 13:44
礼物运送:
状压dp,用二进制表示这个点分别由谁走,floyed.
//先求一遍最短路,赋初始值dp[0][1]=0;for(int now=0;now<=S;now++){for(int i=1;i<=n;i++){if (dp[now][i]>inf) continue;for (int j=1;j<=n;j++) if(now>>(j-1)&1)continue; else dp[now|(1<<j-1)][j]=min(dp[now|(1<<j-1)][j],dp[now][i]+G[i][j]);if(ans[now]==-1)ans[now]=dp[now][i];else ans[now]=min(ans[now],dp[now][i]);}}//枚举各种状态,再进行dp
braveman:
贪心题,类似国王的游戏。
tree:
现在有一棵二叉树,所有非叶子节点都有两个孩子。在每个叶子节点上有一个权值(有n个叶子节点,满足这些权值为1..n的一个排列)。可以任意交换每个非叶子节点的左右孩子。
要求进行一系列交换,使得最终所有叶子节点的权值按照中序遍历写出来,逆序对个数最少。
本蒟蒻听了一中大佬解释才想到。。。好弱。。。
其实中xvbianli中序遍历就是dfs,求出最少逆序对就可以了(玄学)
maxval:
给出一个字符串S,求其所有前缀中,字符长度与出现次数的乘积的最大值。
我当时用的暴力,55分,不能再高了。正解kmp(其实它就是来求循环节的)。
scanf("%s",a+1); n=strlen(a+1); for (int i=2;i<=n;i++) { while (t&&a[i]!=a[t+1]) t=nxt[t]; if (a[i]==a[t+1]) t++; nxt[i]=t; cnt[t]++; }//kmp中nxt long long ans=0; for (int i=n;i>=1;i--) { ans=max(ans,(cnt[i]+1)*i);//更新答案 cnt[nxt[i]]+=cnt[i]; } printf("%lld",ans);
数列(seq):
n个数,m次询问,每次问[l,r]区间有多少个数恰好出现正偶数次
第一眼想dp,但明显不是,绝对的后效性。打了个暴力。。。
传说中的莫队算法%%%
分块,排序,在根号n范围内进行转移(左右)
改造二叉树:
这个还是比较好操作的。
dfs,求lis(不完全是,要进行玄学减法操作,确保不相等)
//dfs序是个好东西
仓库:
o(n)的树上转移还是可以的,但那个巨坑的xor,保留啊啊啊啊
打倒charlotte:
貌似一个树形dp.;
异或:
打的暴力。。。。。
虐题三角:
写过类似的~~一样的~~
按公式求,加gcd(double和int转换也很麻烦)
n^3暴力,正解要经过玄学预处理
阅读全文
1 0
- 2017暑假石家庄一中
- 石家庄一中游记(2017暑假)
- 石家庄
- 2017年石家庄最新房贷利率
- 2017暑假
- 石家庄汪洋
- 石家庄一行
- 一中scanf
- 2017暑假实习
- 2017暑假实习
- 2017暑假实习
- 2017暑假实习
- 2017暑假做什么
- 2017暑假集训总结
- 2017暑假集训小结
- 2017暑假集训
- 2017暑假集训总结
- 2017暑假PKU课程
- Consul实现原理系列文章1: 用Raft来实现分布式一致性
- A. Odds and Ends Codeforces Round #431 (Div. 2)(水题)
- 数据结构常见的八大排序算法
- centos 磁盘分区后用partprobe 无效解决办法
- 【s5p4418嵌入式学习】开篇01
- 2017暑假石家庄一中
- CUDA6.5+VS2010+OpenCV2.4.9的环境搭建过程
- Learning Scrapy 0 HTML and XPath
- Python中-Beautiful Soup库的基本使用
- 指针和数组的关系
- Android之为什么只能在UI线程操作View
- 杭电1081—动态规划To The Max
- 铺地毯
- C++面试知识点