当前位置: 首页 > news >正文

东坑网站建设公司网站商场模板

东坑网站建设公司,网站商场模板,如何查看网站流量,电脑制作app的软件cf 1512 E. Permutation by Sum 题意#xff1a; 我们定义排列的概念为#xff1a;从1到n的整数组成的序列#xff0c;每个数字只出现一次 现在给你n,l,r,s,让你构造一个长度为n的排列#xff0c;使得其中的第l到第r项和为s 输出任意答案 题解#xff1a; 又是构造题 我们定义排列的概念为从1到n的整数组成的序列每个数字只出现一次 现在给你n,l,r,s,让你构造一个长度为n的排列使得其中的第l到第r项和为s 输出任意答案 题解 又是构造题构造题考察经验思维 我们想想区间[l,r]的和为s 区间长度为len r - l1 区间长度为len的能组成的最小和min就是1…len 最大和就是nn-1…n-lenn1 如果s不在这个范围内说明s无法构造输出-1 如果s可以构造说明最小和就是s 这个怎么求 ave s-min/len区间内每个数比最小值平均大Ave 那么我们这个区间至少应该是iave1ilen 这样构造的区间一定小于等于s我们去差为cha且区间为从小到大顺序排列 如果小于scha0我们就让最后一位1cha–如果cha还大于0我们就让倒数第二位1cha–从后往前一次增加 为什么这样 为什么要1呢因为每位这个区间是最接近s的连续区间所以从这个开始枚举所需要的可能性最少 为什么要倒着循环1呢因为这个循环肯定是不可能全部进行完的因为我们已经求的原本的区间是最接近s的所以在某个时刻cha会等于0循环中断如果我们正着循环在第i个数加完后中断第i个数就等于第i1个数因为原本序列是顺序排列的而i加了1第i1位没变会出现重复数但是如果倒着循环就不会存在因为后一位始终大于前一位 详细看代码 代码 #include algorithm #include iostream #include cstring #include string #include vector #include cstdio #include stack #include queue #include cmath #include map #include set #define G 10.0 #define LNF 1e18 #define eps 1e-6 #define ll long long #define INF 0x7FFFFFFF #define PI acos(-1.0) #define pb(x) push_back(x) #define SP system(pause) #define mm(a, b) memset(a, b, sizeof(a)) #define fir(i, a, n) for (ll i a; i n; i) #define rif(i, a, n) for (ll i a; i n; i--) #define each_cass(cass) for (cin cass; cass; cass--)using namespace std; void solve() {ll n, l, r, s;cin n l r s;ll Min (1 r - l 1) * (r - l 1) / 2;ll Max (n n - r l) * (r - l 1) / 2;if (s Max || s Min){cout -1 endl;return;}int cha s - Min;vectorint zhong;vectorint qian;vectorint hou;int pingduo cha / (r - l 1);//代表[1~(r-lr)]每个数至少要加的数int len r - l 1;for (int i 1; i len; i)zhong.push_back(ipingduo),cha-pingduo;if (cha)//如果cha不为0就最大的几个数1直到cha0{for (int i zhong.size() - 1; cha i 0; i--){zhong[i];cha--;}}int vis[10000] {0};//记录防止重复for (int i 0; i zhong.size(); i)vis[zhong[i]] 1;for (int i 1; i n; i){if (qian.size() l - 1)//前面的数是(l-1)个break;if (!vis[i])qian.push_back(i), vis[i] 1;}for (int i 1; i n; i){if (hou.size() n - r)//后面的数是(n-r)个break;if (!vis[i])hou.push_back(i), vis[i] 1;}//输出for (int i 0; i qian.size(); i)cout qian[i] ;for (int i 0; i zhong.size(); i)cout zhong[i] ;for (int i 0; i hou.size(); i)cout hou[i] ;cout endl; } int main() {int cass;each_cass(cass){solve();}return 0; }
http://www.zqtcl.cn/news/301135/

相关文章:

  • 案例建网站宿松网站建设公司
  • 秦皇岛网站开发wordpress免费国内主题
  • seo网站推广推荐阳江房管局查询房产信息网
  • php服装商城网站建设个人网站免费空间
  • 做内贸注册什么网站广州市建设交易中心网站
  • 点样用外网访问自己做的网站北京市网站设计公司网址
  • 用备案的网站做违法网站wordpress个性404
  • 中国制造网官方网站下载安装我国做民宿的网站
  • 英文网站seo广州市软件开发有限公司
  • 锦州网站建设渠道山西做网站的公司有哪些
  • 4线城市搞网站开发丹灶网站建设公司
  • 青岛网站建设seo优化wordpress分类标题自定义
  • 网站开发本地环境在海南注册公司需要多少钱
  • 济南网站开发去哪儿旅行app下载安装
  • 大城 网站北京做网站男生工资
  • 赣州网站建设百家号免费软件网
  • 在合肥做网站多少钱网站开发外包平台
  • 百度指数查询平台网站建设SEO优化哪家好
  • 网站怎么在成都备案中企动力如何
  • 免费数据统计网站app推广拉新一手渠道
  • 网站推广效果不好原因zac seo博客
  • 高端网站设计合肥网站建设个人网站建设公
  • 廊坊建站模板系统做效果图的网站
  • 建网站打开需要验证四川省成都市建设厅官网
  • 网站文章列表如何排版珠海建设工程信息网站
  • 郑州个人做网站建设银行招聘网站
  • 杭州网站设计公司联系亿企邦网站怎么上百度
  • 网站建设的未来网站不备案访问
  • 网站改版效果图怎么做网站建设的五个基本要素
  • 河南建站网站做o2o网站需要多少钱