贪心只能过样例 SRM 10 描述 给出n个数a[i](1<=a[i]<=n),问最多能把这些数分成几组,使得每个数a[i]所在的组至少有a[i]个数 输入格式 第一行一个整数n,接下来n行每行一个整数分别是a[1],a[2],...,a[n] 输出格式 一行,输出答案,一个整数 样例输入 5 2 1 2 2 3 样例输出 2 数据范围与约定 数据有梯度,分布如下: 0<n<=20 7组数据 20<n<=5000 15组数据 5000<n<=1000000…
模拟只会猜题意 SRM 10 描述 有一本n个单词的词典,求按下列方法能造出的不相同的词汇数目.  1.词典中的单词是一个词. 2.能分为两部分的,其中前一部分是一个词典词或者其非空前缀,后一部分是一个词典词或者其非空后缀的词. 输入格式 第一行一个整数n,接下来n行每行一个字符串,表示单词 输出格式 一个整数,答案 样例输入 3 a ab bc 样例输出 20 数据范围与约定 对10%的数据,n=1 对另外40%的数据,1<=n<=10,单词只含字符'a' 对所有的数据,1<=n<…
[LOJ#515]「LibreOJ β Round #2」贪心只能过样例 试题描述 一共有 \(n\) 个数,第 \(i\) 个数 \(x_i\) 可以取 \([a_i , b_i]\) 中任意值. 设 \(S=\sum{x_i^2}​​\) ,求 \(S\) 种类数. 输入 第一行一个数 \(n\). 然后 \(n\) 行,每行两个数表示 \(a_i, b_i\). 输出 输出一行一个数表示答案. 输入示例 5 1 2 2 3 3 4 4 5 5 6 输出示例 26 数据规模及约定 \(1 \…
bitset练习题... 位运算真的是玄学... 一开始真的“只能过样例” 后来发现把左移写成了小于号 鬼知道我在想什么/手动微笑 loj第一题 #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<algorithm> #include<vector> #include<que…
计算几何瞎暴力 (easy.pas/c/cpp) 128MB 1s 在平面上,给定起点和终点,有一面墙(看作线段)不能穿过,问从起点走到终点的最短路程. 输入格式 输入一行,包含8个用空格分隔的整数xS,yS,xT,yT,x1,y1,x2,y2,依次表示起点(xS,yS),终点(xT,yT),线段(x1,y1)-(x2,y2). 输出格式 输出一个整数,表示答案四舍五入到整数后的值,保证答案精确值的小数点后一位不是4或5. 样例输入 1 1 2 2 1 2 2 1 样例输出 2 样例解释 走折线…
木之本樱 背景 “西瓜是可以种在树上的!”——木之本樱 描述 空地上,一排排的西瓜树拔地而起. 魔法世界里,空地是无限大的.所有的树排成了n条直线,每条直线也是向左右两端无限延伸的. 由于自己姓木(之本)小樱忽然想知道,这些直线能够组成多少个汉字“木”. 我们这样定义一个“木”字:从已有的直线中任取4条,并将其中两条截为射线.若两射线端点为同一点,且两直线均过该端点.对其中一条直线而言,两条射线在同一侧,对另一条直线而言两条射线在异侧,则此时组成一个“木”字.认为两个“木”字相同当且仅当其所取的…
数学上来先打表 SRM 10 描述 给出 n个点(不同点之间有区别),求出满足下列条件的连边(双向边)方案:1.每条边连接两个不同的点,每两个点之间至多有一条边2.不存在三个点a,b,c使三个点间两两可以互相到达且两两之间最短距离相等3.边的长度均为1 输入格式 一行,一个整数n 输出格式 一行,一个整数,表示方案数对1004535809取模的结果. 样例输入 3 样例输出 7 数据范围与约定 对于8组数据,1<=n<=9对于余下8组数据,10<=n<=2000 样例解释 三个点之…
dp只会看规律 SRM 10 描述 平面上有n个点(xi,yi),用最少个数的底边在x轴上且面积为S的矩形覆盖这些点(在边界上也算覆盖) 输入格式 第一行两个整数n,S接下来n行每行两个整数xi,yi,表示点的坐标 输出格式 一行,一个整数,表示答案 样例输入 6 4 5 1 4 1 7 1 6 4 5 4 2 1 样例输出 3 数据范围与约定 n=3,1组数据n=5,1组数据n=11,1组数据 n=15,1组数据 n=18,1组数据18<n<=100,7组数据 对于所有的数据,1<=n…
题目链接:https://loj.ac/problem/515 知识点: DP.bitset类 解题思路: DP部分不难想到:从 a 到 b 遍历,然后在已有的状态上加上遍历得到的数字的平方,难点在于记录状态. 于是我学到了一个新的 C++ 类,bitset,开熏~ S最大只能到 1000000,所以我们开一个比 1000000 稍大的 bitset 类,bitset 上面的各位代表数字 1~1000000,如果能得到一个数字,那么就在这个数字对应的位上置 1,否则置 0.那么加法运算就用移位符…
传送门:https://loj.ac/problem/515 [题解] 容易发现S最大到1000000. 于是我们有一个$O(n^2*S)$的dp做法. 容易发现可以被bitset优化. 于是复杂度就是$O(\frac{n^2S}{32})$ 然后……就过了 # include <bitset> # include <stdio.h> # include <string.h> # include <iostream> # include <algori…
可以发现,答案最大值只有106,于是想到用暴力维护 可以用bitset合并方案可以优化复杂度, Code #include <cstdio> #include <bitset> using namespace std; int n,l[110],r[110],x; bitset<1000010>q[2]; int main(){ scanf("%d",&n); for(int i=1;i<=n;++i)scanf("%d%d&…
内存限制:256 MiB时间限制:1000 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: nzhtl1477 提交提交记录统计讨论测试数据   题目描述 一共有 nnn个数,第 iii 个数 xix_ix​i​​ 可以取 [ai,bi][a_i , b_i][a​i​​,b​i​​] 中任意值.设 S=∑xi2S = \sum{{x_i}^2}S=∑x​i​​​2​​,求 SSS 种类数. 输入格式 第一行一个数 nnn.然后 nnn 行,每行两个数表示 ai,bia_i,b_i…
题目描述 一共有 nnn个数,第 iii 个数 xix_ix​i​​ 可以取 [ai,bi][a_i , b_i][a​i​​,b​i​​] 中任意值.设 S=∑xi2S = \sum{{x_i}^2}S=∑x​i​​​2​​,求 SSS 种类数. 输入格式 第一行一个数 nnn.然后 nnn 行,每行两个数表示 ai,bia_i,b_ia​i​​,b​i​​. 输出格式 输出一行一个数表示答案. 样例 样例输入 5 1 2 2 3 3 4 4 5 5 6 样例输出 26 数据范围与提示 1≤n…
题目: https://loj.ac/problem/515 分析: 所有可能和的最大值是1e6 如果dp的话,dp[i][j]表示前i个数能否凑出和为j的数 这样是O(n^5)的 考虑到[j]可以用bitset优化,时间可以卡过去 bitset可以认为常数/64,并且bitset刚开始全部都是0,后来全部都是1,所以可以认为是1/2常数,所以总的时间复杂度O(n^5/128)…
由于bitset极其不熟练且在实际题目中想不起来运用它来优化,于是练了几道题. 这题是一个分组的bool背包,每组必须选一个,暴力的话是$O(n^5)$. 如果dp数组不要一维滚动的话,有两种枚举方法,一种是枚举体积放外层然后同一组物品放内层,另一种是反过来. ...n ...V ...a[i] f[i][j]|=f[i-][j-a[k]] or ...n ...a[i] ...V f[i][j]|=f[i-][j-a[k]] 然后注意第二种转移有一个可优化的地方.每次$f_{i-1,j}$都是…
bitset的基本应用了 类似可行性背包的dp考虑 复杂度O(nmL/64) #include <bits/stdc++.h> using namespace std; bitset <> bs,bs0; int n,a,b; int main(){ ios::sync_with_stdio(false); cin>>n; bs[]=; ;i<=n;i++){ bs0=bs; bs.reset(); cin>>a>>b; for(int j…
题目友链:https://loj.ac/problem/515 话说这题蛮简单,bitset暴力直接过. 话不多说,上代码! #include <bits/stdc++.h> using namespace std; const int maxn = 1e6 + 10; int n, a, b; bitset<maxn> f[110]; int main() { cin >> n; f[0].set(0); for (int i = 1; i <= n; i++)…
汕头市队赛题目传送门 codeforces题目传送门 这道题我的做法是 尝试先往左走然后往右走 或者先往右走然后往左走 然后注意一下枚举顺序就okay啦 #include<cstdio> #include<cstring> #include<algorithm> #define LL long long using namespace std; ; LL read(){ LL ans=,f=,c=getchar(); ; c=getchar();} +(c-'); c=…
T1 背景 “主角光环已经不能忍啦!” 被最强控制AP博丽灵梦虐了很长一段时间之后,众人决定联合反抗. 魂魄妖梦:“野怪好像被抢光了?” 十六夜咲夜:“没事,我们人多.” 然后当然是以失败告终了. 八云紫:“我们需要一个更强的法师!” 蕾米莉亚:“她的话应该就没问题了吧.” 帕秋莉就这样来到了这块大陆:“来试试我的新魔法.” 描述 帕秋莉的新魔法基于二进制异或运算进行伤害判定. 初始时,系统会生成一些数字.帕秋莉的魔法弹每次攻击,会从数字中挑出一些,将它们异或后作为此次的真实伤害值.作为完美主义…
T1——czl SRM 15 众所周知,czl家养了一只可♂爱的***(已屏蔽),那只东西很贪吃,所以czl家很多零食仓库,然而这些仓库里有很多老鼠. 为了心爱的***,czl决定点燃纯艾条,用烟熏老鼠. 共有N个仓库,编号1-N. 假设陵陵在第i个仓库点燃艾条,烟雾就会充满该仓库,并向左右扩散Ai 的距离,接着所有|i-j|<=Ai 的仓库 j 的老鼠被消灭. 陵陵是个爱护环境的人,他想知道最少需要多少支艾条,才可以消灭所有老鼠. [输入格式] 第一行:一个正整数,代表 N. 第二行:N 个非…
这道题放了很久还是回来补了 D 天才麻将少女KPM SRM 07 背景&&描述 天才麻将少女KPM立志要在日麻界闯出一番名堂.     KPM上周叒打了n场麻将,但她这次又没控分,而且因为是全市参与的麻将大赛,所以她的名次范围是0..10^5.     名次可能等于0是因为KPM那场没去打= =     没去打就意味着无限的可能性.     KPM叒想要让自己的名次严格递增.为了避免被妹子怀疑,她只能把没打的比赛的名次改成T..R中的整数     当然,n场全部严格递增是很难做到的.你只需…
不净的圣杯 SRM 20 背景 作为一张BUG级别的卡,官方打算把它修改得人畜无害一些…… 虽然名字还没想好,但是能力大概是对敌方所有单位造成d点伤害,d为自己牌组中所有卡的编号的最大公约数.这无疑是一个全新的技能类型,决定一出,负责“自动编辑卡组”系统的工程师们发愁了,要如何让AI把这一鬼畜设定考虑进去呢?我们现在只能假定每张牌被编进卡组的概率是相等的,工程师们想知道d的期望值. 描述 给n个数,问随机从中挑出一些数(大于等于1个)后,挑出数字的期望gcd.输出期望值乘并对1e9+7取模后的值…
C SRM 05 - YYL 杯 R1 背景 tjmak 描述 给一个大小为n的序列V.序列里的元素有正有负.问至少要删除多少个元素使得序列里不存在区间(要求非空)和 >= S.如果答案大于m,则输出-1 输入格式 第一行3个整数n,m,S含义如上 第二行n个整数 vi 输出格式 一个整数,表示至少要删除多少个数字. 样例输入 9 1000001 11 4 5 6 -8 5 6 6 4 3 样例输出 4 数据范围与约定…
绵津见-终 SRM 13 背景 “西瓜也是可以种在海上的!”——绵津见 然而种在海上的西瓜最需要防范的,是时不时会涌向瓜田的阵阵海浪. 幸好,身为海神的绵津见可以释放魔法“水平如镜”来阻止海浪拍打西瓜. 然而,当西瓜一个接一个成熟之时,它们就要离开瓜田,飘向遥远的彼岸.绵津见的魔法无法保护离开瓜田的西瓜们,但至少,也得知道西瓜们遭遇了多大的风浪啊. 描述 我们用一个坐标系来描述大海,绵津见的瓜田位于x轴下方,每当有一个西瓜成熟时,它会从x轴上一点出发,沿一条平行y轴的直线往y轴正方向前进. 某个…
A 你的麻将会排序吗 SRM 07 曾经有过一些沉迷日麻的小孩纸,后来呀,他们都去寻找自己的世界了. kpm也是这样的小孩纸.他想有一只自动整理牌的机器.当麻将以给定的顺序进入机器时,通过机器的运转,使得麻将们出机器的顺序是递增的.所以kpm需要在机器中建立一些传送带 (假设这些传送带都是足够长,可以停放很多很多的麻将),问题是,现在kpm需要建立多少条传送带才能完成他的机器. kpm大概有10^5块麻将吧. 输入格式 第一行是一个不大于10^5的数,表述麻将的总数. 第二行是麻将依次进入机器的…
C 整洁的麻将桌 SRM 07 背景&&描述 天才麻将少女KPM立志要在日麻界闯出一番名堂.     KPM上周双打了n场麻将,但她这次没控分,而且因为是全民参与的麻将大赛,所以她的名次范围是1..10^9.     因为找膜法使的事被妹子打断了三条腿后,KPM这次要用自己的真实本领让名次严格递增.     幸好她从前把出题人的头像卖给了炮姐,现在KPM可以入侵比赛系统,修改自己的排名.     KPM毕竟是新手,每次操作只能使自己某场比赛的排名增加或者减少1.     她急着去见妹子,你…
A SRM 05 - YYL 杯 R1 背景 傻逼题 描述 给一个序列,序列里只有两种元素1和2.现在要从序列里选出一些非空子序列使得子序列里两种元素数量相同.问有多少种方案数? 输入格式 多组数据 第一行一个正整数T,表示数据组数. 每组数据内 第一行 两个个正整数n,表示序列的长度 第二行 n个数字,表示整个序列. 输出格式 一个整数,表示方案数(mod 1e9+7). 样例输入 1 3 2 2 1 样例输出 2 数据范围与约定…
这道题可以贪心 维护一个答案队列 枚举位置 每次将比当前位置大的队尾全部替代掉 记录删了多少了就好了 #include<cstdio> #include<iostream> #include<cstring> #include<algorithm> #include<string> #define LL long long using namespace std; ; int n,k,cnt; char s[M],q[M]; int main()…
背景 自从芽衣.布洛妮娅相继灵魂觉醒之后,琪亚娜坐不住了.自己可是第一个入驻休伯利安号的啊!于是她打算去找德丽莎帮忙,为她安排了灵魂觉醒的相关课程. 第一天,第一节课. “实现灵魂觉醒之前,你需要先将自己的崩坏能按顺序排好……” “诶诶,这个要怎么做呢?”算法课没认真听讲也是没有办法的嘛. 于是,琪亚娜设(xia)计(bian)了一套自己的排序方法. 描述 我们可以用n张卡片代表崩坏能,上面恰好写了1到n. 一开始这些卡片是随机排列的,然后为了把它们从小到大排好序,进行如下操作: ①如果卡片已经…
从天上掉下来了个这样的问题: 有一个字符串 从中选出两个子串 A,B,求 A+B可以构成的不同串的个数. 还想知道,这么多个串中字典序最大的那一个. 某人捡到了这个问题,并把它扔给了你. [输入] 一个全由小写字母构成的字符串. [输出] 第一行 一个非负整数,表示两个子串A+B可以构成的不同串个数.由于答案可能很大,所以答案对1004535809取模. 第二行 一个字符串,表示构成的串中字典序最大的. [样例输入1] ab [样例输出1] 11 bb [样例输入2] abcaabccba [样…