题目地址 二分用的很是巧妙!关键是抽象出问题本质。 1 #include <cstdio> 2 #include <string> 3 #include <cstring> 4 const int maxn = 100000; 5 #define ull unsigned long long 6 ull X[maxn], Y[maxn], Z[maxn], C[maxn]; 7 ull N; 8 ull judge(const ull &mid) { 9 ull sum = 0; 10 for (int i = 0; i < N; i++) { 11 if (mid >= Y[i]) { 12 sum += C[i]; 13 } else if (mid >= X[i]) { 14 sum += ((mid-X[i])/Z[i]+1); 15 }
题意:有n个灯,给定第一盏灯A的高度,接下去每盏灯的高度按照公式计算,求使所有灯都不会落在地上(允许碰触)的B的最低高度。 uva 输出 double 用 %f,这一波坑的! 1 #include <cstdio> 2 int n; 3 double A, B, a[1005]; 4 //h2的值 5 bool check(double x) { 6 a[2]
查看题目 最小化第K大值。 让我怀疑人生的一题目,我有这么笨? 1 #include <cstdio> 2 #include <queue> 3 #include <cstring> 4 #include <vector> 5 #include <functional> 6 using namespace std; 7 #define maxv 1010 8 #define maxl 1000000 9 struct edge 10 { 11 int to, cost; 12 edge(){} 13 edge(int to, int cost) : to(to), cost(cost){} 14 }; 15 typedef pair<int, int> P; 16 vector<edge> G[maxv]; 17 int d[maxv]; 18 int V, E; 19 int dij(int s, int x) { 20
题目地址 分析:如果用二分法,关键是score和aid分开排序,score排序是为了充分利用中位数的性质,这样就可以确定m左右必须各选N/2个,到这之后有人是用dp求最优解,可以再次按照aid排序一次,
1.设置默认工作路径 一般来说MATLAB的默认工作路径是安装目录下的bin目录,但是,把这个作为自己的工作目录很不方便,以为里面已经有很多安装文件了,容易混淆: 每次打开再更改路径又太麻烦,所以最好的办
题目链接 忽略运算符逻辑导致奇怪的错误(代码中指明位置了) 输出没加0.5,WA。 还有,注意特殊情况k=0,所以scanf("%d%d", &n, &k)&n就够了, scanf("%d%d", &n, &am
地址 别人的代码,自己边界总是控制不好,还不知道哪里错了!思维!这种问题代码越简洁反而越不容易错吧。。 1 #include<stdio.h> 2 #include<algorithm> 3 typedef long long ll; 4 using namespace std; 5 ll n,m,L,a[100010]; 6 bool bi(ll x){ 7 ll i,cnt=0,now=0; 8 for(i=1;i<=n;i++){ 9 if(a[i]-a[now]<=x)cnt++; 10 else now=i; 11 } 12 if(L-a[now]<x)return 0; 13 return cnt<=m; 14 } 15 int main(){ 16 ll i,l,r,mi; 17 while(~scanf("%lld%lld%lld",&L,&n,&m)){ 18 l=0;r=L;
查看原题 边界,就是边界和思维,怎么有效的判断中间值是大了还是小了,以及准确的找到边界!一个<写成<=就前功尽弃,还特别难找到错误! 1 #include <cstdio> 2 #include <algorithm> 3 const int maxN = 100005; 4 int N, M; 5 int A[maxN]; 6 using namespace std; 7 int main(void) { 8 while
由于昨天把系统玩坏了,得重装虚拟机,可是在向导阶段阶段就出现了“此主机不支持64位客户机操作系统…”的提示,于是网上查了一下解决方法:无非都是Enable VT之类,可是设置这些之后还是有
第一反应是BFS,比较直观,但是输出路径写的不是很熟练,此外,习惯不好,“==”写成了“=”,所以常量一定放前面! 1 #include <cstdio> 2 #include <queue> 3 #include <cstring> 4 using namespace std; 5 int N, K; 6 typedef struct node 7 { 8 int in, out; 9 int pos; 10 }Link; 11 const int maxn = 50005; 12 bool vis[maxn]; 13 Link