题目传送门 题目大意:一圈人围起来卖糖果,标号从1-n,每个位置的糖果都有自己的价格,一个人拿着钱从q开始走,能买则买,不能买则走到下一家,问最多能买多少件物品. 思路:此题的关键是不能买则走到下一家,一旦走到下一家,我们会发现之前的这家以后无论转几圈我们都买不起,所以直接把这个店删掉就可以了. 于是先将n当成周期,算出此时的sum,和原来的money比较,能买几个周期则买几个周期,然后遍历双向链表,不能买则删去,更新周期和sum,继续判断能不能买得起此时的周期,然后走到下一家店,直到剩下一家店…
D. Berland Fair time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output XXI Berland Annual Fair is coming really soon! Traditionally fair consists of nn booths, arranged in a circle. The booths ar…
题意: 给出一个字符串,长度为9,包含三种各三个字母"a","g","o",如果一次消除连续三个一样的分数+1,消完自动向左补齐 其中可以消去任意字母,以求得更大的分数 思路: 1.如果能够消去两个xxx那么一定能消去第三个,那么答案为3 2.如果只能找到一个xxx,那么答案一定是 2,因为必须舍弃一个消除才能得到一组xxx 3.没有找到xxx,那么有两种情况,一种是1,一种是2,枚举三个字母,暴力删除后进行判断xxx的存在,如果存在,那么答案是…
XXI Berland Annual Fair is coming really soon! Traditionally fair consists of nnbooths, arranged in a circle. The booths are numbered 11 through nn clockwise with nnbeing adjacent to 11. The ii-th booths sells some candies for the price of aiai burle…
Description 给定 \(n\) 个商店,他们围成一个圆圈,按照顺时针从 \(1\) 到 \(n\) 编号.你有 \(T\) 元钱,从 \(1\) 号点开始按照顺时针方向走,每到一个商店,只要钱够就必须买这个商店的物品.商店中物品是无限的,即多次到达可能多次购买.求会买多少件物品 Input 第一行是一个整数 \(n\) 下面一行 \(n\) 个整数 \(a_i\),代表每个商店物品的价格 Output 一行一个整数代表答案 Hint \(1~\leq~n~\leq~2~\times~1…
time limit per test: 2 secondsmemory limit per test: 256 megabytesinput: standard inputoutput: standard output XXI Berland Annual Fair is coming really soon! Traditionally fair consists of nnn booths, arranged in a circle. The booths are numbered 111…
codeforces Nikita and string time limit per test   2 seconds memory limit per test   256 megabytes One day Nikita found the string containing letters "a" and "b" only. Nikita thinks that string is beautiful if it can be cut into 3 stri…
http://codeforces.com/problemset/problem/1073/D 题目大意:有n个物品(n<2e5)围成一个圈,你有t(t<1e18)元,每次经过物品i,如果身上的钱可以购买该物品就直接购买,直到一件物品都不能购买,求一共可以购买多少件物品. 题目分析:由于t的数量级达到了1e18,所以不可能直接进行暴力模拟,这个时候就要想到周期性地模拟. 题解:每次遍历一下1~n这n个物品,然后计算出可以取的物品数以及价值,然后用剩下的钱除以这个价值,得到可以进行的轮数,累加到…
题目描述 Iahub and Sorin are the best competitive programmers in their town. However, they can't both qualify to an important contest. The selection will be made with the help of a single problem. Blatnatalag, a friend of Iahub, managed to get hold of th…
题目链接:http://codeforces.com/contest/768/problem/C 题意:给出n个数,k个操作,和一个x,每次操作先排序然后对奇数位数进行xor x操作,最后问k次操作后最大值和最小值 为多少. 题解:看似是要找规律的但是只要暴力就行了.主要是a[i]的范围就只有10的3次,而且时间还有4s,直接来一个vis[i]表示 0-2048个数内取了几个,这样排序都不用了.直接for 0-2048就行.(2的10次1024,异或2的9次就是,2的11次减1 所以设最大为20…
题意 https://vjudge.net/problem/CodeForces-1244D 有一棵树,有3种颜色,第i个节点染成第j种颜色的代价是c(i,j),现在要你求出一种染色方案,使得总代价最小,且对于任意三个相邻的节点,颜色不能相同.输出最小代价与其中一种方案.无解输出-1. 思路 首先可以发现当一个点的度数为3,那么它连的三个点的颜色必须互不相同,这样就把三种三色用完了,这个点就染不了了,于是如果存在度大于等于3的点,那么无解. 那么有解的树可以伸直成一条链,我们暴力枚举任意相邻的三…
题意 有一个括号序列,你可以选择两个位置i,j(i可以等于j),进行交换.使得最后的循环位置(i的数目)最大. 循环位置:i(0<=i<len),将前i个字符移到最后,得到的新序列是合法的括号序列. )()()( 的循环位置有 1.3.5 )((()))( 的循环位置有 1.7 思路 这题还有个大数据范围版本,那题思路太神仙了,我等凡人就学学暴力吧!这题有个结论,假设)为-1,(为+1,那么一个括号序列的循环匹配个数等于前缀和最小值的个数.证明参考某大佬的: 假设对于序列)()(,它的前缀和是…
题目链接 题意: 有n座塔,每座塔的攻击范围为[l,r],攻击力为d,有k个怪兽从这些塔前面经过,第i只怪兽初始的生命力为hp,出现的位置为x,终点为第n个格子.问最后有多少只怪兽还活着. 分析: 这个题刚开始是想用线段树,但是这个题会超时,线段树是O(nlogn)的复杂度,应该是卡的输入输出, 所以看别人的博客有人用 快速读入的方法用线段树 险过了,就是把每一个当作字符来输入,然后处理成数字. 但是正解是O(n)的处理,即把l, r,  d, 用数组a[l] += d;  a[r+1] = -…
You have a garland consisting of nn lamps. Each lamp is colored red, green or blue. The color of the ii-th lamp is sisi ('R', 'G' and 'B' — colors of lamps in the garland). You have to recolor some lamps in this garland (recoloring a lamp means chang…
题意:一个人  有T块钱 有一圈商店 分别出售 不同价格的东西  每次经过商店只能买一个  并且如果钱够就必须买 这个人一定是从1号店开始的!(比赛的时候读错了题,以为随意起点...)问可以买多少个 思路:这个人有T块钱  走一圈之后可以买num个 花了sum块钱 那么走第二圈的时候 能买的东西是一圈的子集 T/sum 表示还能够执行多少次买东西买完之后T%=sum继续递归上述步骤  直到 T=0||num=0 也就是没钱或者 一个都 买不起 参考:https://blog.csdn.net/S…
用一个树状数组维护前缀和,每次我二分地找一个位置,使得我能一路买过去 但这个买不了 那以后肯定也都买不了了,就把它改成0,再从头二分地找下一个位置,直到这一圈我可以跑下来 然后就看跑这一圈要花多少钱.能买多少糖,拿T除一除,减一减,再去跑下一圈 每个位置只会被删一次,所以复杂度是$O(nlog^2n)$的 但那个用树状数组再二分的过程 其实大概可以在线段树上分治来做到一个log,但我哪会啊 #include<bits/stdc++.h> #define pa pair<int,int&g…
~~~题面~~~ 题解: 可以发现,每走完一圈付的钱和买的数量是有周期性的,即如果没有因为缺钱而买不起某家店的东西,那么这一圈的所以决策将会和上一圈相同,这个应该是很好理解的,想想就好了. 因为钱数固定时,决策固定,所以每次都O(n)扫一遍看当前情况下走一圈会花多少钱. 然后直接一直取这么多钱,直到钱不够为止,再进行下一次计算走一圈的钱数,显然用类似取模的东西可以解决. 为什么这样的复杂度是正确的呢? 一开始觉得是$n^2$的,还想了半天如何优化,但其实因为每次钱数都取了模,而一个数每次取模至少…
Andrew often reads articles in his favorite magazine 2Char. The main feature of these articles is that each of them uses at most two distinct letters. Andrew decided to send an article to the magazine, but as he hasn't written any article, he just de…
题意:初始有t元,每次从1开始买,从1到n依次有n个人,每个人的东西价格为a[i],该人依次能买就买,到n之后再回到1从头开始,问最后能买到的东西数量 n<=2e5,t<=1e18,a[i]<=1e9 思路:显然购买是有周期的,每次周期变化都会少至少一个人,所以至多进行n次周期的变化 #include<cstdio> #include<cstring> #include<string> #include<cmath> #include<…
题意: 询问一共有有多少个CCPC,每个得1分,可以自己在任意位置添加字母,第i次添加需要耗费i-1分 思路: 既然每次添加需要耗分,添加第二个字母,相当于没有添加,所以只需要添加一次就好 先计算出原始字符串中的CCPC,在不破坏CCPC的前提下,添加字母即可 代码: #include<iostream> #include<cstdio> using namespace std; const int maxn = 2e5+10; int flag[maxn]; char str[m…
[链接] 我是链接,点我呀:) [题意] 题意 [题解] 我们可以从左到右枚举一轮. 定义一个cost表示这一轮花费的钱数 如果cost+a[i]<=T那么就可以买它,并且买下它(模拟题目要求) 那么我们累计这一轮可以买下的数量cnt 则显然我们不用每一层都这么枚举 直接累加答案就好 ans = ans + T/cost cnt; 然后令T=T%cost就好了 因为newT = beforeT%cost 所以newT = beforeT-xcost <cost cost(1+x)>bef…
http://acm.timus.ru/problem.aspx?space=1&num=2064 题意:有n只虫子在爬树,每个虫子往上爬ti距离后会往下掉落ti距离,每爬一个单位距离耗费一个单位时间,然后重新往上爬.有q个询问,询问当前的x时刻,爬的最高的虫子所在的最高位置. 思路:画个以时间为x轴,距离为y轴的图,可以清楚知道整个图是类似于一座座山峰的.我们只要处理每个时刻的最高点. 只考虑最高点所在的位置,处理出虫子能达到的最高点的时刻的最高点arrive[]. 考虑每个时刻要得到最优的两…
题意 https://vjudge.net/problem/CodeForces-1230C 给了你总共有21张多米诺骨牌,每张牌有两个面,然后给你一个无向图,保证没有环和一个顶点多条边的情况存在.现在让你在这个图中的每个边放多米诺骨牌.有一个放置规则,问你最多能放几张多米诺骨牌上去. 放置规则就是,每个点的权值都是一样的,你在每条边上放的多米诺骨牌,因为它有两个面.需要保证两个面上面的大小就是它指向的点的权值. 如 4 4 1 2 2 3 3 4 4 1 Here is an illustra…
题意 https://vjudge.net/problem/AtCoder-2565 将一个H*W的矩形切成三份,每一次只能水平或者垂直切,问最大块的面积-最小快的面积 的最小值是多少. 思路 先枚举水平切第一块的高i,那么剩余部分h-i要么继续水平切.要么垂直切,因为要使最大快-最小快 最小,那么剩下的两块肯定是相差最少为好,所以可以拆成w/2和w-w/2两块,也可以拆成(h-i)/2和(h-i)-(h-i)/2. 再枚举垂直切的第一块的宽度,后续操作类似. 代码 #include<bits/…
考场上切的,挺简单的~ Code: #include <cstdio> #include <algorithm> #define N 200005 #define inf 1000000004 #define ll long long #define setIO(s) freopen(s".in","r",stdin) , freopen(s".out","w",stdout) using namesp…
Nirvana 题目链接(点击) Kurt reaches nirvana when he finds the product of all the digits of some positive integer. Greater value of the product makes the nirvana deeper. Help Kurt find the maximum possible product of digits among all integers from 11 to nn.…
2011htpcfans 发表于 2012-5-11 http://bbs.wuyou.net/forum.php?mod=viewthread&tid=210269&highlight=win7%2B%BE%AB%BC%F2 2012-5-5 08:45  本人仓促发布了Win7全自动精简批处理_温柔处理版,经过一周改进优化,现发布新版:Win7全自动精简批处理_温柔处理极速修正版/暴力剩女工程测试版.    强烈建议,大家先看完说明. 应部分坛友要求,我把本批处理的设计背景.执行效果.…
Linux中加入用户.删除用户时新手可能遇到的问题  1.创建新用户后切换到新用户:No directory, logging in with HOME=/     加入用户     #sudo useradd -m -s /bin/bash -g group loginname     -m 创建home文件夹 (不加这个要手动加入文件夹,不然会出现No directory,Logging in with HOME=/ )     -s /bin/bash 使用bash( 默觉得 /bin/s…
今天上传代码把不需要的push上去了.结果想删除那个不想要的怎么弄都不行.网上大部分都是把那个项目整个暴力删除.那可不行啊那么多都删除.下次上传不是要命啊! 试啊试终于解决了.顺便记录一下也帮助下需要的朋友. 看下图1: 比如我想删除webqq这个文件夹 github命令: $git rm  -r  --cached  加文件名 如图2: 敲回车键 然后输入 $git commit -m 加文件名 如图3: 敲回车键 然后push提交信息 $git push origin master 如图4:…
rm *    文件名rm -r */ 文件夹rm -rf * 文件夹或文件名 -r 代表文件夹之下的都删除掉 -f 代表暴力删除,无需确认直接删完…