- 博客(5)
- 收藏
- 关注
原创 codeforces 1450:D. Rating Compression
题目链接题意就是一个长度n的数组和范围1-n的数字k,k代表着任意【i ~i+k】这个区间的最小值转变后的的数组。比如1 5 3 4 2这个数组,当k = 2时候的数组为:1 , 3 , 3 , 2。(区间1到2的最小值是1,区间2到3的最小值是3等等)问的是这个k取1到n,每个k生成的数组是否是一个全排列,比如上面生成的一个数组有重复的数,不是一个全排列。看到这个题目思考了一会,被题目贴的标签迷惑住了,其实也不用非要往尺取那上面想。可以发现,一个k生成的数组里面必定有n-k+1这个元素,那么1到这个
2021-01-24 22:05:15 183
原创 平面几何:皮克定理,线段覆盖点数
皮克定理:2S=b+2a-2 (其中S表示多边形的面积,b表示多边形上点的个数,a表示多边形内部点的个数。)已知顶点坐标求多边形面积公式:S=0.5abs(x1y2-y1x2+x2y3-y2x3+…+xny1-yn*x1)已知方向向量为(x,y)求在线段上点的个数:b=gcd(fabs(x),fabs(y))...
2020-11-07 19:01:15 275 2
原创 Codeforces1399-Codeforces Round #661 (Div. 3)-E1. Weights Division (easy version)
题目链接题意:给定以1为根节点的树,定义树的总价值为从根节点到每个叶子结点的路径总和(注意一条路径可能会计算多次),可以选择任意边权减少一半向下取整,问最少的操作次数使得总价值小于等于S。思路:dfs处理出每条边可以经过叶子结点的个数,优先队列来贪心使得操作数最少。比赛的时候没想太多,直接将边权乘经过次数塞进优先队列,一直wa,看了题解才恍然大悟,如果用边权乘叶子结点个数直接除二可能将答案变大,因为如果边权是奇数向下取整再乘叶子结点个数肯定比先乘后除减少的价值多。AC代码:#include<c
2020-08-06 17:50:55 246 1
原创 Codeforces 1388:C. Uncle Bogdan and Country Happiness(bfs+dfs)
(题目链接)题意:起初所有人都在1号城市,总共有m个人,每个城市有pi个人,每个城市都有一个幸福指数:快乐的人减去不快乐的人。给出n-1条路:u,v,代表城市u和城市v有一条双向边,每个人回到自己的城市是走最短路,也就是不会经过一个节点两遍,每个人在路途中可能变得不快乐,以后的路不能变得快乐,问给出的数据能不能满足每个城市的幸福指数。思路:树形结构+从某个点出发到达其他所有节点,当然会想到bfs模拟。但是bfs模拟还需要某些信息:某个节点所需要经过的总人数,以及某个节点快乐的人数,这里dfs处理就好了。
2020-07-31 12:19:57 290
原创 背包问题(完全背包,多重背包,分组背包)
文章目录完全背包多重背包分组背包完全背包完全背包就是有n个物品,第i(1<= i <= n)个物品的价值为v[i],重量为w[i],可以不限次数的选,问背包容量为m能装的最大价值。先看看01背包怎么写:for(int i = n;i >= 1;i--){ for(int j = m;j >= w[i];j--){ dp[j] = max(dp[j],dp[j-w[i]] + w[i]); }}这里只讲空间优化的情况:第二层for循环是倒叙的,因为第i个物品的状态
2020-07-03 22:46:54 1587
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人