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

微信怎么做捐钱的网站东莞seo网络公司

微信怎么做捐钱的网站,东莞seo网络公司,济南市建设网站,用wordpress设计html文章目录 小S与机房里的电脑 Computer传统题题目描述输入格式输出格式样例样例输入 1样例输出 1样例输入 2样例输出 2 提示解题思路AC CodeEnd 小S与机房里的电脑 Computer 传统题 时间限制: 1000ms内存限制: 256MiB 题目描述 最近小S想带他的学生打组队娱乐赛#xff0c;… 文章目录 小S与机房里的电脑 Computer传统题题目描述输入格式输出格式样例样例输入 1样例输出 1样例输入 2样例输出 2 提示解题思路AC CodeEnd 小S与机房里的电脑 Computer 传统题 时间限制: 1000ms内存限制: 256MiB 题目描述 最近小S想带他的学生打组队娱乐赛比赛规定每队三个人只能其中一个人用电脑进行代码的编写。 但是现在隔壁教室因为上大型集训课拿走了所有的充电器导致最后只剩下一个充电器可以拿来充电。但是 n n n 个队伍需要 n n n 台电脑并且组队娱乐赛要进行 m m m 分钟每台电脑有初始的电量 a i a_i ai​ 每分钟的耗电量 b i b_i bi​ 。没有办法小S只能通过他的电路知识来改装这个充电器使得它具有足够的功率来帮助同学们完成这场比赛。 但是功率越大危险度越高小S希望你帮他计算一下充电器至少每分钟要充多少电才能满足大家的需求。 输入格式 第一行一个正整数 T T T 代表多组数据的组数第二行两个整数 n n n 和 m m m第三行 n n n 个整数 a i a_i ai​第四行 n n n 个整数 b i b_i bi​ 输出格式 输出一行整数代表满足比赛需求的充电器每分钟最小的充电量若无法满足需求则输出 -1。 样例 样例输入 1 2 2 4 3 2 4 2 2 2 2 10 3 15样例输出 1 5 -1样例输入 2 2 1 5 4 2 1 6 4 2样例输出 2 1 2提示 全部数据包括 n ≤ 2 × 1 0 5 n \leq 2 \times 10^5 n≤2×105 1 ≤ m ≤ 2 × 1 0 5 1 \leq m \leq 2 \times 10^5 1≤m≤2×105 1 ≤ a i ≤ 1 0 12 1 \leq a_i \leq 10^{12} 1≤ai​≤1012 1 ≤ b i ≤ 1 0 7 1 \leq b_i \leq 10^7 1≤bi​≤107 其中30%的数据保证 n ≤ 100 n \leq 100 n≤100 解题思路 提示这里光看有些抽象结合下面的 Code 理解起来更容易。 思路考虑二分答案二分最小的充电功率。 其中可以用 vector 建桶 v e s [ i ] ves[i] ves[i] 表示存活时间到 i i i 的电脑的结构体下标数组 去枚举 vector 的第一维下标同时设置一个变量 n o w T nowT nowT 表示当前时间 根据贪心的思想选择当前快要没电的那个存活时间到 i i i 的先充电 如果当前时间大于第一维下标说明电脑修不过来了返回 false 否则 n o w T m nowT m nowTm 时说明执行完任务了退出。 小总结 check 中的循环调换了常理。原本正常的思路应该是枚举 n o w T nowT nowT用堆维护当前的最小存活时间如 AC 代码下面的代码 但是这样复杂度 O ( log ⁡ ( 1 0 12 ) × m × log ⁡ ( n ) ) O(\log(10^{12}) \times m \times \log(n)) O(log(1012)×m×log(n))但“好心”的出题人卡 log说明不能这样。 于是我们转而枚举第一维下标解决了问题这种思路很值得积累。 程序运行过程 输入用结构体存储每一台电脑的基础信息和存活时间。二分答案充电功率往小了二分。 check(){ 预处理每一台电脑用 vector 建桶这样查询插入复杂度 O ( 1 ) O(1) O(1)。不断枚举 vector 的第一维下标不断修电脑直到有的电脑最大存活时间小于当前枚举的时间退出。一直执行至 n o w T m nowT m nowTm说明可以完成任务返回 TRUE。 } AC Code 这道题貌似要加快读不然会被卡常。快读讲解文章 #include bits/stdc.h using namespace std;typedef long long ll;int T, n, m;struct Node{ll a, b;ll t_a; // 表示当前还能存活多长时间 }N[100005]; vector int A[100005];bool check(ll x){for(int i 0; i m; i ) A[i].clear(); // 先清空后使用for(int i 1; i n; i ){ // 初始化赋值N[i].t_a N[i].a;if(N[i].b ! 0 N[i].t_a / N[i].b 1 m){ // 如果存活时间在m之内说明还有计算的必要它可能会撑不住A[N[i].t_a / N[i].b 1].push_back(i); // 塞到对应的桶中}}int nowT 1; // 当前时间的计数器for(int i 1; i m; i ){ // 枚举m个时间单位作为判断标准可以理解为理想化的时间while(A[i].size() 0){ // 这个内层循环最多执行n次所以总时间复杂度不是O(n^2)是线性O(n)的if(nowT i){ // 如果当前时间i说明已经超时了return false;}if(nowT m){return true; // 说明顺利执行完m秒可以返回}int pos A[i].back(); A[i].pop_back();N[pos].t_a x; // 把充电器给他充上。因为当前的压线时间是i所以肯定要先给快没电的也就是当前时间i充电。至于先后顺序就无所谓了。nowT ;if(N[pos].t_a / N[pos].b 1 1LL * m){ // 注意a[i]1e12m不强转ll可能会出问题A[N[pos].t_a / N[pos].b 1].push_back(pos);} // cout debug: i A[i].size() nowT endl;} // cout debug_i: i endl;}return true; }template typename T void read(T w){ // 防止卡常加快读w 0;char c getchar();for(; c 0 || c 9; c getchar());for(; c 0 c 9; c getchar()){w (w 1) (w 3) (c ^ 48);} }int main() {for(read(T); T --; ){read(n), read(m);for(int i 1; i n; i ){read(N[i].a);}for(int i 1; i n; i ){read(N[i].b);} // cout check(10) endl;ll l 0, r 1e12, ans -1;while(l r){ll mid (l r) 1;if(check(mid)){ans mid;r mid - 1;}else{l mid 1;}}printf(%lld\n, ans);}return 0; }附上面提到的被卡超时的代码 //超时TLE #include bits/stdc.h using namespace std;typedef long long ll;const int MAXN 2e5 7;int T , n , m;struct Node{ll a , b;ll t_a; }no[MAXN];bool check(ll x){map int , vector int vis;for(int i 1; i n; i ){ //预处理no[i].t_a no[i].a;if(no[i].b ! 0 no[i].t_a / no[i].b 1LL * m){vis[no[i].t_a / no[i].b].push_back(i);}else{//pass}}for(int tim 0; tim m; tim ){if(vis.empty()){return true;}int pos vis.begin()-first;if(pos tim){return false;}ll t1 vis[pos].back(); vis[pos].pop_back();if(vis[pos].size() 0){vis.erase(vis.begin());}no[t1].t_a x;if(no[t1].t_a / no[t1].b m){vis[no[t1].t_a / no[t1].b].push_back(t1);}}return true; }int main() {for(scanf(%d , T); T; --T){scanf(%d %d , n , m);for(int i 1; i n; i ){scanf(%lld , no[i].a);}for(int i 1; i n; i ){scanf(%lld , no[i].b);} // cout check(5) endl;ll l 0 , r 1e12 , ans -1;while(l r){ //二分充电功率往小了二分ll mid (l r) 1;if(check(mid)){ans mid;r mid - 1;}else{l mid 1;}}printf(%lld\n , ans);}return 0; }End 感谢大家观看祝大家 AC 这里是 YLCHUP拜拜ヾ(•ω•)o 广告本文在洛谷博客同步发送个人洛谷账号ylch
http://www.yayakq.cn/news/4970/

相关文章:

  • 网站运营成本河北廊坊百度建站
  • 网站正在建设中 英语翻译什么是网站开发
  • 科技信息网站建设的背景深圳网站建设认准乐云践新
  • dwcc2018怎么做网站wordpress 标签数
  • 网站建设教程视频西瓜软件库破解版软件合集
  • 提供坪山网站建设湖南建设工程招标网
  • 动画设计技校沈阳网站排名seo
  • 河南营销型网站建设网站开发中数据库的功能
  • 网站网站如何做的充值浦东区网站建设
  • 长沙网站推广公司排名如何做泰国网站
  • html5的篮球网站开发成都专业做网站公司
  • 网站群建设指南找第三方做网站 需要注意
  • 做外贸推广的网站有哪些seo综合查询工具有什么功能
  • phpcmsv9手机网站源码中山网站改版
  • 广西城乡建设部网站网站开发有前途吗
  • wordpress站点是什么意思乐彩网站源码网站建设
  • 企业电子网站建设成都网站seo外包
  • 网站建设收费分几次做招聘信息的网站
  • 网站建设论坛报告升学宴邀请函电子版免费制作软件
  • 网站建设div可拖拽布局街区网站建设的意义
  • 做后期的网站微信公众号是干什么用的
  • 网站建设答案无锡网站建设唯唯网络
  • 北京网站建设询q479185700上快电商项目策划书
  • 金融培训网站源码个人网站页面设计需要那些步骤
  • 网站建设公司海南有一套源码做网站还差什么
  • 网站开发吗和APP软件一样吗郑州网站设计制作哪家好
  • 门户网站搭建方案活动拍摄
  • 旅行社网站建设需求分析app 展示网站
  • 企业应该找什么样的网站建设公司昆明网建
  • 重庆中国建设银行招聘信息网站辽阳专业建设网站公司