题目链接:http://www.ifrog.cc/acm/problem/1146?contest=1020&no=2 题解:显然知道这是一道dp而且 dp[i]=min(dp[j]+2^(x[j]-x[i])+a,dp[i])但是这题很显然2的次幂显然很容易比a大于是只要for一遍最多30次就行具体看一下代码,炒鸡简单的. #include <iostream> #include <cstring> #include <algorithm> #include…
[Link]:http://www.ifrog.cc/acm/problem/1146 [Description] [Solution] 设f[i]表示在第i个点休息的话最少需要的体力值; f[i]=min(f[j]+2x[i]−x[j]+a) (j<i) 答案为f[n] 注意,如果每个点都休息的话; 总的花费是不会超过260 所以,当x[i]-x[j]>60, 直接break 然后把x值相同的,直接去掉就好,(肯定不用停,因为停了又不会前进); (以防所有坐标都一样,卡时间) [Number…
题目链接 DESCRIPTION INPUT OUTPUT SAMPLE INPUT 2 3 2 3 5 7 3 10 3 5 7 SAMPLE OUTPUT 12 26 HINT 官方题解: 代码如下: #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> using namespace std; typedef long long LL; ]; ]; i…
因为坐标都在1-10之间,因此可暴力求解 #include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <cmath> #include <vector> #include <algorithm> using namespace std; #define lowbit(x) (x&(-x)) #define ma…
[Link]:http://www.ifrog.cc/acm/problem/1143?contest=1020&no=0 [Description] [Solution] 因为每个点的(xi,yi)里面, 0<=xi,yi<=10 则,开一个d[11][11][11]的数组统计每个点出现的次数; 最多只会有11^3个点; 则暴力枚举第一个教室的点(x0,y0,z0); 枚举第二个教室的点(x1,y1,z1); 设x为这两个点的距离 是相同的点的话 dis[x]+=A2d[x0][y0…
“玲珑杯”ACM比赛 Round #18 Start Time:2017-07-15 12:00:00 End Time:2017-07-15 15:46:00 A -- 计算几何你瞎暴力 Time Limit:5s Memory Limit:256MByte Submissions:1764Solved:348 DESCRIPTION 今天HHHH考完了期末考试,他在教学楼里闲逛,他看着教学楼里一间间的教室,于是开始思考: 如果从一个坐标为 (x1,y1,z1)(x1,y1,z1)的教室走到(…
Codeforces Beta Round #18 (Div. 2 Only) http://codeforces.com/contest/18 A 暴力 #include<bits/stdc++.h> using namespace std; #define lson l,mid,rt<<1 #define rson mid+1,r,rt<<1|1 #define sqr(x) ((x)*(x)) #define maxn 500005 typedef long lo…
Problem CSA Round 18 题意概要:给定一个有重边有自环 \(n\) 点 \(m\) 边的有向无环图(DAG),每条边有其权值,每当你走到一个点 \(x\) 时,所有从 \(x\) 连出去的边上的权值会互相随机打乱,问从 \(S\) 到 \(T\) 最短路长度的期望 \(n,m\leq 10^3\) Solution 首先第一步很明显是按照 DAG 的拓扑序一个个地转移,只需考虑处理每个点怎么转移,设 \(f[x]\) 表示从 \(x\) 走到 \(T\) 的最短路长度期望 先暂…
历时7小时- -(算上晚饭)终于敲完BootStrap CSS样式部分.还是第一次这么持久的敲纯前端,连JS都没有. 正好趁这机会熟悉了Sublime,主要是各个快捷键的用法.目前用到最多的: 而且sublime字体真是漂亮啊.代码敲多了,居然变赏心悦目了. 这是今天敲得最多的一部分——表单.赶紧用sublime去练习敲代码吧~~~这里给个下载链接我的网盘:http://pan.baidu.com/s/1nu5L0Id 上传下今天的成果:包含离线文档(最新的3.3.5,由于离线文档只找到3.3.…
DESCRIPTION 今天HHHH 考完了期末考试,他在教学楼里闲逛,他看着教学楼里一间间的教室,于是开始思考: 如果从一个坐标为 (x1,y1,z1)(x1,y1,z1) 的教室走到(x2,y2,z2)(x2,y2,z2) 的距离为 |x1−x2|+|y1−y2|+|z1−z2||x1−x2|+|y1−y2|+|z1−z2| 那么有多少对教室之间的距离是不超过RR 的呢? --> INPUT 第一行是一个整数T(1≤T≤10)T(1≤T≤10) , 表示有TT 组数据 接下来是TT 组数据,…
题目链接:http://www.ifrog.cc/acm/problem/1147 题解:这题很容易想到的是边的贡献也就是每条边最多被取到几次,和点的贡献类似,那些加边只要加在边贡献大的边上就行.然后什么是边的贡献,就是一条边左右两边连着的最小的点的个数,因为这条边最多被取到这么多次.还有就是爆栈的处理具体看一下代码那个define的就是爆栈的处理如果是lunix的话那个else不需要. #include <iostream> #include <cstring> #include…
题目链接:http://www.ifrog.cc/acm/problem/1143?contest=1020&no=0 题解:就是瞎暴力具体多暴力看一下代码就知道了. #include <iostream> #include <cstring> #include <queue> #include <cstdio> #include <cmath> using namespace std; typedef long long ll; ][]…
C. Stripe Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/problemset/problem/18/C Description Once Bob took a paper stripe of n squares (the height of the stripe is 1 square). In each square he wrote an integer number, possibly neg…
A. New Bus Route 题目大意:给出n个不同的数,问差值最小的数有几对.(n<=200,000) 思路:排序一下,差值最小的一定是相邻的,直接统计即可. #include<cstdio> #include<algorithm> using namespace std; <<],*S=B,C;int X,F; inline int read() { ;(C=*S++)<; )+(X<<)+C-'; return X*F; } #defi…
DESCRIPTION There are nn buildings lined up, and the height of the ii-th house is hihi. An inteval [l,r][l,r](l≤r)(l≤r) is harmonious if and only if max(hl,…,hr)−min(hl,…,hr)≤kmax(hl,…,hr)−min(hl,…,hr)≤k. Now you need to calculate the number of harmo…
正解:图论 解题报告: 传送门$QwQ$ 发现最大团不好求,于是考虑求最大独立集.也就把所有$gcd(i,j)\cdot gcd(i+1,j+1)=1$的点之间连边,然后求最大独立集. 发现依然不可做,不妨猜结论:这张图一定是张二分图. 其实猜到了证明还是挺$easy$的$QwQ$ 发现连边的点之间的奇偶性一定不同,因为若相同,$gcd$必定为2的倍数 所以这是张二分图 于是就跑个匈牙利求最大匹配数,答案就$n-$最大匹配数鸭,$over$ #include<bits/stdc++.h> us…
题目大意:求一段数(l到r)的按位与结果不为零需要删除中间元素的最小个数 思路:按位与使得结果不为0只要有某一位全是1即可,所以只要统计每一位1的个数,用总个数减去1的个数就是某一位0的个数 删除包含0最少的那一位就是最少需要删除的个数 1 # include<iostream> 2 # include<bits/stdc++.h> 3 using namespace std; 4 # define int long long 5 # define endl "\n&qu…
比赛链接 直接贴代码.. #include<bits/stdc++.h> using namespace std; typedef long long LL; int main() { LL a,b,n; while(cin>>a>>b>>n) { LL sum=1e18; LL ans; ;i*i<=n;i++) ) { LL t=a*n/i+b*n*i; if(t<sum) { sum=t; ans=i; } } cout<<an…
喵哈哈村的古怪石碑(一) 题解:暴力check一下是等比数列还是等差数列,然后输出答案即可.注意如果数据范围是1e9的话,就要快速幂了. 代码: #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #include <iostream> //#define LOCAL const int N=100+10; const int MOD=100007;…
最大值无非就是在两个端点或极值点处取得. 我注意讨论了a=0和b=0,却忽略了极值点可能不在L到R的范围内这一问题.被Hack了. #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<string> #include<cmath> #include<map> #include<set> #include…
题目链接  Tetration 题意  给定一个排列  现在可以任意调整这个排列的顺序 求$a_{1}^{a_{2}^{a_{3}^{...^{a_{n}}}}}$对$p$取模的最小值 直接枚举$a$的每一个排列,然后计算取最小值即可. #include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for (int i(a); i <= (b); ++i) #define dec(i, a, b) for (int…
Description T is a complete binary tree consisting of n vertices. It means that exactly one vertex is a root, and each vertex is either a leaf (and doesn't have children) or an inner node (and has exactly two children). All leaves of a complete binar…
Description n children are standing in a circle and playing the counting-out game. Children are numbered clockwise from 1 to n. In the beginning, the first child is considered the leader. The game is played in k steps. In the i-th step the leader cou…
Description There are n cities situated along the main road of Berland. Cities are represented by their coordinates — integer numbers a1, a2, ..., an. All coordinates are pairwise distinct. It is possible to get from one city to another only by bus.…
C. Divide by Three   A positive integer number n is written on a blackboard. It consists of not more than 105 digits. You have to transform it into a beautiful number by erasing some of the digits, and you want to erase as few digits as possible. The…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 考虑,为什么一个连通块里面的空格没有变成一个矩形? 如果不是形成矩形的话. 肯定是因为某个2x2的单张方形里面. 只有一个角是墙.其他角都是空的正方形. 举一些例子. ...* *... 可以看到这个连通块不是长方形. 就是因为有 .. *. 和 .* .. 如果我们把这两个角上的墙给删掉的话. 显然就能得到一个矩形了. 根据这个作为启发. 我们可以将整张图里面所有的2x2的正方形里面的"角"都给删掉. 这样的话,就能…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 每个数字有3种选择. 1.选中它. 2.选中它且加阶乘符号 3.不选中它(即计算和的时候不考虑它) 如果我们直接暴力写的话复杂度是\(3^{25}\) 寻求优化. 我们可以用Meet-in-the-middle这个方法. 先求出1..n/2这些数字的组合方式. 用map<ll,ll> dic[25]来存它们的和. dic[i][j]表示前n/2个数字中选了i个[2]状态的数字,和为j的方案数. 则我们再穷举n/2+1..n这些…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 假设现在每个人收到的信息条数存在cnt里面 那个人猜的条数为target 则如果cnt[i]==target[i] 则我们就让第i个人来就好了. 因为s[i][i]=1恒成立. 所以第i个人它的cnt个数肯定递增了. 因此第i个人的cnt值和target值肯定再也不会相同了. (其他人如果来的话,只会让这个人的cnt值越来越大,离target越来越远 所以如果对每个人都这么做的话. 最后肯定可以让所有人的cnt值都和target…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 用cnt[i]记录数字i出现的次数就好. 然后i从1e6逆序到1 如果cnt[i+1]和cnt[i]>0同时成立的话. 那么得到一条边.加入到vector中. 然后 如果cnt[i]>1 则cnt[i]-=2 加入i到vector中,直到cnt[i]<=1为止. 注意这两个判断的先后顺序. 否则 5 4 4 3会被认为无解. vector的大小如果大于等于2了. 就说明找到一个矩形. [代码] #include <…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] m比较小 <=1000 a[i]直接看成a[i]%m就可以了. 有n个0..999之间的整数.. 如果有一个0那么就直接输出Yes. 否则要用那些数字凑0 则用cnt[0..999]记录每个数字出现的个数. 即n个物品,每个物品cnt[i]个. 然后凑和为0 ->多重背包. 但每个物品的数量可能很多. 所以加一个二进制优化就好了. 把每个物品的数量转化成二进制. 转换成01背包的问题. (物品的数目大概在1000*log2(1…