【Codeforces 231C】To Add or Not to Add】的更多相关文章

[链接] 我是链接,点我呀:) [题意] 题意 [题解] 把数组排个序, 显然优先用大的且小于枚举的数字a[i]的数字变成a[i] 那么肯定有一个范围j. 然后a[j~i-1]都能在k花费以内变成a[i] 然后考虑i++ 这个时候肯定最好的情况还是a[j~i]都能变成a[i] (至少j不会变小,因为数字a[i]都变大了,再往左的话,花费肯定超过k了) 所以根据上面的推理,维护一个最左的端点j吧) [代码] #include <bits/stdc++.h> #define ll long lon…
[codeforces 415D]Mashmokh and ACM 题意:美丽数列定义:对于数列中的每一个i都满足:arr[i+1]%arr[i]==0 输入n,k(1<=n,k<=2000),问满足[数列长度是k && 数列中每一个元素arr[i]在1~n之间 && 数列中元素可以重复]的数列有多少个?结果对10^9+7取余 解题思路:dp[i][j]表示长度是j,最后一位是i的种数 if(kk%i==0) dp[kk][j+1]+=dp[i][j] #inc…
[题目链接]:http://codeforces.com/contest/707/problem/E [题意] 给你一个n*m的方阵; 里面有k个联通块; 这k个联通块,每个连通块里面都是灯; 给你q个操作; 有以下两种类型 ①将第i个连通块里面灯取反 ②询问你(x1,y1)(x2,y2)这个矩形区域内灯的权值的和; [题解] 要用到二维的树状数组; 取反操作只要O(1)就能完成; 即先不管它是什么,取反就是了; 然后在询问的时候,直接用二维树状数组累加; 这里的累加可能是减也可能是加; 也可能…
[题目链接]:http://codeforces.com/problemset/problem/757/D [题意] 给你一个01串; 让你分割这个01串; 要求2切..n+1切; 对于每一种切法 所切成的各个部分的二进制,转成十进制之后;假设里面最大的数为m; 问1..m这些数字都出现的切法有多少种; [题解] 可以算一下对于1个75位的数字来说; 最多只可能连续出现 从 1..20 你可以算一下1..20这20个数字的二进制形式恰好占74个; 不能再多一个数字了,因为21的二进制形式的长度肯…
[题目链接]:http://codeforces.com/problemset/problem/716/D [题意] 给你一张图; 这张图上有一些边的权值未知; 让你确定这些权值(改成一个正整数) 使得s到t的最短路恰好为L [题解] 首先; 算出两个值 temp1->所有的未知边的权值都为1->算出s到t的最短路; temp2->所有的未知边的权值都为INF->算出s到t的最短路; 则必须要有 temp1<=L<=temp2 否则无解; 明白这个之后; 为每一个未知的…
[题目链接]:http://codeforces.com/problemset/problem/501/D [题意] 给你两个排列; 求出它们的字典序num1和num2; 然后让你求出第(num1+num2)%n!个排列是什么; (字典序); [题解] 首先. 求出两个排列的字典序: ->康拓展开搞出来; 然后得到 v1[1]∗(n−1)!+..+v1[i]∗(n−i)!+...+v1[n]∗(0)! 的形式 这里v1[i]是i+1..n中比a[i]小的数的个数; 同样的能够得到 v2[1]∗(…
[题目链接]:http://codeforces.com/problemset/problem/404/D [题意] 让你玩一个1维的扫雷游戏; 游戏的描述由数字0..2以及符号*表示; 分别表示这个格子的相邻的两个格子里面有几个炸弹;以及炸弹; 然后挖一些空; 问你有多少种填满的方案; [题解] dp[i][1] 表示前i个位置,第i个位置放0的方案数 dp[i][2] 表示钱i个位置,第i个位置放1,前一位没炸弹的方案数 dp[i][3] -..放1,前一位有炸弹-.. dp[i][4] -…
[题目链接]:http://codeforces.com/problemset/problem/589/G [题意] 有n个人; 每个人每天在开始工作之前,都需要di单位的准备时间,然后才能开始工作; 然后每个人都有m天的时间,每天有ti个单位的时间供每个人进行准备工作以及工作; 也就是说第i个人每天必须要先扣掉di个单位的时间;剩下的才是它能够工作的时间; 然后每个人都需要完成ri个单位的时间的工作量; 然后如果你发现某一天连准备的时间都不够的话,你可以跳过这一天; 问你最早在第几天,第i个人…
[题目链接]:http://codeforces.com/contest/816/problem/B [题意] 给你很多个区间[l,r]; 1<=l<=r<=2e5 一个数字如果被k个以上的区间覆盖到; 则称之为特殊数字; 给你q个询问区间; 问你这q个区间里面 每个区间里面有多少个特殊数字; [题解] 对于覆盖的区间l,r add[l]++,sub[r+1]++, 然后顺序枚举 now+=add[i]; now-=sub[i]; 如果now>=k则i是一个特殊数字; 写个前缀和O…
[题目链接]:http://codeforces.com/problemset/problem/466/D [题意] 给你n个数字; 让你选择若干个区间; 且这些区间[li,ri]; 左端点不能一样; 右端点也不能有一样的; 你能把这些区间内的元素递增1; 问你把所有的n个元素都变成h有多少种方案;. [题解] 设dp[i][j]; 设前i个数字都已经变成h,且有j个区间的左端点没有被匹配的方案数; 每个位置都有些一些选择; '-' 什么都不放 ']' 放一个右端点在这个位置; ']['放一个右…