小学网站模板免费下载,lunix安装wordpress,本地wordpress 外网访问不了,18款未成年禁止下载的appA、 题目描述#xff1a; 游游拿到了一个边长为n的正方形披萨#xff0c;她准备切k刀#xff08;每刀只能横着或竖着切开#xff09;#xff0c;最终会形成若干个小矩形披萨。游游希望每个小披萨的面积相等#xff0c;且矩形的长和宽的差的绝对值尽可能小。你能帮游游求出…A、 题目描述 游游拿到了一个边长为n的正方形披萨她准备切k刀每刀只能横着或竖着切开最终会形成若干个小矩形披萨。游游希望每个小披萨的面积相等且矩形的长和宽的差的绝对值尽可能小。你能帮游游求出每个小矩形的面积吗 输入描述: 两个正整数n和k用空格隔开。
1≤n,k≤100 输出描述: 一个浮点数代表每个小矩形的面积小数点后保留2位。 示例1 输入 2 1 输出 2.00 示例2 输入 3 3 输出 1.50 #includebits/stdc.h
using namespace std;
#define int long long
#define fp(i,a,b) for(int ia;ib;i)
#define PII pairint,int
const int N2e510;
const int mod1e97;
const double eps1e-5;
typedef double db;
int n,k;
signed main()
{cinnk;int mmax0;for(int i0;ik;i){int jk-i; int xi1;int yj1;int sumx*y;mmaxmax(mmax,sum);}coutfixedsetprecision(2)n*n*1.0/mmax\n;return 0;
} 枚举即可。 B、 题目描述 游游拿到了一个长度为n的字符串她每次操作会选择一个区间[l,r]将第l个字母到第r个字母各重复一次插入到该字母的后面。 例如对于字符串abcd若选择区间[2,3]进行操作字符串将变成abbccd 游游将进行q次操作。她想知道q次操作结束后最终的字符串是什么样子 输入描述: 第一行输入两个正整数n和q分别代表字符串长度和操作次数。
第二行输入一个仅由小写英文字母组成的字符串代表初始的字符串。
接下来的q行每行输入两个正整数l,r代表操作的区间。
1≤n≤1000
1≤q≤10
1≤l≤r≤10^6
保证每次操作时r不大于当前的字符串长度。 输出描述: 一个字符串代表所有操作结束后形成的字符串。 示例1 输入 6 2
abcdef
2 4
3 6 输出 abbbccccdddef 说明 第一次操作后字符串变成abbccddef 第二次操作后字符串变成abbbccccdddef #includebits/stdc.h
using namespace std;
#define int long long
#define fp(i,a,b) for(int ia;ib;i)
#define PII pairint,int
const int N2e510;
const int mod1e97;
const double eps1e-5;
typedef double db;
int n,q;
string s;
signed main()
{cinnq;cins;int l,r;fp(i,1,q){string t;cinlr;l--;r--;for(int j0;js.size();j){ts[j];if(ljjr){ts[j];}}st;}couts\n;return 0;
} 暴力即可 C、 题目描述 游游拿到了一个大小为n的数组数组第i个数为ai。 游游会选择一些元素使得这些元素都等于它们的平均数。 例如假设数组为 [5 , 4 , 2 , 4]游游选择第一个和第三个元素最终数组将变成 [3.5 , 4 , 3.5 ,4] 游游最多可以选择k个元素她希望最终数组最大值和最小值的差尽可能小。你能帮她求出这个差吗 输入描述: 第一行输入两个正整数n和k用空格隔开。分别代表数组大小、以及游游最多可以选择的元素数量。
第二行输入n个正整数ai代表每个数组的元素。1≤n,ai≤200000 1≤k≤n 输出描述: 一个浮点数代表最终数组的最大值和最小值的差。 如果你的答案和正确答案的相对误差不超过10−610^{-6}10−6则认为答案正确。 示例1 输入 4 2
5 4 2 4 输出 0.5 示例2 输入 4 4
5 4 2 4 输出 0 将数组排序 枚举选择最小值的元素数量i和最大值的元素数量j(i j k) 计算选择这些元素后的最小值和最大值 更新答案 #include bits/stdc.h
using namespace std;
const int N1e610;
const int inf1e9;
#define int long long
#define fp(i,a,b) for(int ia;ib;i)
typedef double db;
int n,k;
int a[N],sum[N];
signed main()
{cinnk;fp(i,1,n)cina[i];sort(a1,a1n);fp(i,1,n)sum[i]sum[i-1]a[i];if(nk){coutfixedsetprecision(6)0.00\n;return 0;}db ans3e18;for(int i0;ik;i){int jk-i;db xsum[i]sum[n]-sum[n-j];db mimin(1.0*a[i1],x*1.0/k);db mamax(1.0*a[n-j],x*1.0/k);ansmin(ans,ma-mi);}coutfixedsetprecision(6)ans\n;return 0;
} D、 题目描述 游游准备去开车旅行她初始在1号城市准备前往n号城市。 游游打开了携程她查询到了地图上有若干城市城市之间有一些道路连接。每条道路有承重限制当游游的车重量超过了承重时她就不能走这条道路。 游游是一个贪心的人她希望总路程不超过h的前提下携带尽可能多的物品出行。游游想知道自己的车最多重量能达到多少 输入描述: 第一行输入三个正整数n,m,h代表城市数量和道路数量以及总路程的限制。
接下来的m行每行输入四个正整数u,v,w,d代表有一条道路连接了u号城市和v号城市道路的最大承重为w道路长度为d。
2≤n≤10^5
1≤m≤10^5
1≤u,v≤n
1≤w,d,h≤10^9 输出描述: 如果游游无法到达n号城市则输出-1。
否则输出一个正整数代表游游的车的最小重量。 示例1 输入 3 3 5
1 2 7 3
1 3 6 4
3 2 4 2 输出 6 说明 直接走1-3这条路道路的承重为6。 如果走1-2-3这两条路虽然总里程也不超过5但由于2-3道路承重为4所以游游的车的重量会更小。 spfa二分 你用dijkstra也行
#include bits/stdc.h
using namespace std;
const int N1e610;
const int inf2e9;
#define int long long
#define fp(i,a,b) for(int ia;ib;i)
int n,m,hh;
int e[N],ne[N],h[N],w[N],d[N],idx;
int dis[N];
bool vis[N];
void add(int x,int y,int z,int t)
{e[idx]y;ne[idx]h[x];w[idx]z;d[idx]t;h[x]idx;
}
int spfa(int x)
{fp(i,1,n)vis[i]0,dis[i]inf;vis[1]1;dis[1]0;queueintq;q.push(1);while(!q.empty()){int nowq.front();q.pop();vis[now]0;for(int ih[now];~i;ine[i]){int je[i];if(dis[j]dis[now]d[i]w[i]x){dis[j]dis[now]d[i];if(vis[j]0){vis[j]1;q.push(j);}}}}return dis[n]hh;
}
signed main()
{memset(h,-1,sizeof h);cinnmhh;fp(i,1,m){int x,y,z,t;cinxyzt;add(x,y,z,t);add(y,x,z,t);}int l-1,r1e9; while(lr){int mid(lr1)1;if(spfa(mid))lmid;else rmid-1;}coutl\n;return 0;
}