A.Boat Trips(水)

题目大意:

n条旅游线路,每条旅游线路 pip_i人。现在有m条船,每条船装c个人,问是否这些船能满足所有的旅游线路?

题目分析:

就是判断 mcmc是否全部小于pip_i.太水了

#include <bits/stdc++.h>
using namespace std;#define RE(x) freopen(x,"r",stdin)
#define WR(x) freopen(x,"w",stdout)
#define ms(x,y) memset(x,y,sizeof(x))
#define pb push_back
#define mp make_pair
#define INF 0x3f3f3f3f
#define eps 1e-8typedef long long ll;
typedef vector<int> vi;
typedef pair<int,int> pi;
typedef vector<ll> vl;const int M = 1e9 + 7;
const double PI = acos(-1.0);const int MAXN = 1e5;
const int MAXM = 1e6;int main() {//RE("in.txt");WR("out.txt");int n,c,m,p;cin>>n>>c>>m;string s="Yes";while(n--) {cin>>p;if(c*m<p)s="No";}cout<<s<<endl;
}

B.The Great XOR(位运算)

题目大意:

输入x,求有多少个a满足:a  XOR  x>x,0<a<xa\ \ XOR\ \ x > x,0.

题目分析:

首先把x写开成二进制形式,从低位开始考虑:

如果x的该位是0,那么只要a在这一位取1,比他低的位任取,就都能满足题意,如果x在该位是0,那么a只能取0,不可能找到解。

例如:
x=11001101

首先a至多取比x少一位的数,也就是七位数,其中a不可能是七位数、四位数、三位数、一位数(因为异或之后就会变小),但可是任意的六位数、五位数、二位数
这样就很简单了。需要注意数据范围超过int。

#include <bits/stdc++.h>
using namespace std;#define RE(x) freopen(x,"r",stdin)
#define WR(x) freopen(x,"w",stdout)
#define ms(x,y) memset(x,y,sizeof(x))
#define pb push_back
#define mp make_pair
#define INF 0x3f3f3f3f
#define eps 1e-8typedef long long ll;
typedef vector<int> vi;
typedef pair<int,int> pi;
typedef vector<ll> vl;const int M = 1e9 + 7;
const double PI = acos(-1.0);const int MAXN = 1e5;
const int MAXM = 1e6;ll q,x;
int main() {cin>>q;while(q--) {cin>>x;ll ans=0;for(int i=0;i<35;i++) {ll t=(1ll<<i);if(t>=x)break;if(!(t&x))ans+=(1ll<<i);}cout<<ans<<endl;}
}

C.Lucky Number Eight(数位dp)

题目大意:

给你一个n位的由数字组成的字符串(n的范围到2e5),问有多少个不连续的子串可以被8整除?输出结果mod 1e9+7.

题目分析:

一看就是数位DP,一开始脑子里闪过的是小学奥数中判定被8整除的法则,就是看末三位数,但是这样的话数组就开成了2e5*1000*8B=1.6GB,,内存显然是不够用的。

看了题解知道,是根据模8值进行转移的,这样数组只需开到2e5*8*8B=12.8MB即可。

然后就是类似于背包的思想,记dp[i][j]表示前i位已经确定,当前子串模值为j的方法数,则dp[i][j]=dp[i+1][j]+dp[i+1][k]dp[i][j]=dp[i+1][j]+dp[i+1][k],其中k表示放入第i+1位后的新模值,有点类似于背包的思想。

记忆化dfs一下,最后dp[0][0]−1dp[0][0]-1即为所求,因为这里面还包括一个空串,其模值为0。注意数据范围即可。

#include <bits/stdc++.h>
using namespace std;#define RE(x) freopen(x,"r",stdin)
#define WR(x) freopen(x,"w",stdout)
#define ms(x,y) memset(x,y,sizeof(x))
#define pb push_back
#define mp make_pair
#define INF 0x3f3f3f3f
#define eps 1e-8typedef long long ll;
typedef vector<int> vi;
typedef pair<int,int> pi;
typedef vector<ll> vl;const int M = 1e9 + 7;
const double PI = acos(-1.0);const int MAXN = 2e5;
const int MAXM = 1e6;int n;
char s[MAXN+5];
ll dp[MAXN+5][10];void dfs(int pos,int mod) {if(pos==n) {dp[pos][mod]=(mod==0);return;}else if(dp[pos][mod]!=-1)return;int nextmod=(mod*10+(s[pos]-'0'))%8;dfs(pos+1,mod);dfs(pos+1,nextmod);dp[pos][mod]=(dp[pos+1][mod]+dp[pos+1][nextmod])%M;
}
int main() {cin>>n;for(int i=0;i<n;i++)cin>>s[i];ms(dp,-1);dfs(0,0);cout<<dp[0][0]-1<<endl;
}

D. The Value of Friendship(贪心算法)

题目大意:

给你n个人,m组直接的朋友关系,定义total值为每一个人的朋友数(包括直接和间接)的和,求一种加边方式,使得每一步的total值的总和最大。

题目分析:

首先观察到,对于n个人的朋友圈,其total值就是n×(n−1)n\times(n-1),从头开始加边就是1*2+2*3+3*4…+n*(n-1).完成n-1条边之后,再在这个子图上加边或者在其他朋友圈里操作,增加的都是n*(n+1).那么我们得到了贪心规律:
先统计最后每个朋友圈有几个人,然后按大小排序,先加朋友圈大的,加完n-1次之后加第二大的。。。以此类推,因为先加最大的其n*(n-1)值就大,这样每一步的total值就是最大的

#include <bits/stdc++.h>
using namespace std;#define RE(x) freopen(x,"r",stdin)
#define WR(x) freopen(x,"w",stdout)
#define ms(x,y) memset(x,y,sizeof(x))
#define pb push_back
#define mp make_pair
#define INF 0x3f3f3f3f
#define eps 1e-8#define IN "D:/water-questions/temp/input/in.txt"
#define OUT "D:/water-questions/temp/input/out.txt"typedef long long ll;
typedef vector<int> vi;
typedef pair<int,int> pi;
typedef vector<ll> vl;const int M = 1e9 + 7;
const double PI = acos(-1.0);const int MAXN = 1e5;
const int MAXM = 1e6;int q,n,m;
int f[MAXN+5],r[MAXN+5],sum[MAXN+5];
ll ans;
int find(int x) {return f[x]==x?x:f[x]=find(f[x]);
}
void un(int i,int j) {int x=find(i),y=find(j);if(x!=y) {if(r[x]<r[y]) {f[x]=y;sum[y]+=sum[x];}else {f[y]=x;sum[x]+=sum[y];if(r[x]==r[y])r[x]++;}}
}
int main() {cin>>q;while(q--) {cin>>n>>m;for(int i=1;i<=n;i++) {f[i]=i;r[i]=1;sum[i]=1;}for(int i=0;i<m;i++) {int u,v;cin>>u>>v;if(find(u)!=find(v))un(u,v);}vl cp;for(int i=1;i<=n;i++)if(f[i]==i)cp.pb(sum[i]);sort(cp.begin(),cp.end());ll ans=0;ll edge=0;for(int i=cp.size()-1;i>=0;i--) {edge+=(cp[i]-1);ll temp=0;for(int j=1;j<cp[i];j++)temp+=(j*(j+1ll));ans+=((m-edge)*cp[i]*(cp[i]-1)+temp);}cout<<ans<<endl;}
}

Week Of Code 28相关推荐

  1. 【FASTDFS】fastdfs上传文件报错 org.csource.common.MyException: getStoreStorage fail, errno code: 28 解决方法

    无意中发现了一个巨牛的人工智能教程,忍不住分享一下给大家.教程不仅是零基础,通俗易懂,而且非常风趣幽默,像看小说一样!觉得太牛了,所以分享给大家.点这里可以跳转到教程. 这个报错要从一个tracker ...

  2. FASTDFS上传文件时报错,org.csource.commom.MyException:getStoreStorage fail,error code : 28解决办法

    原因:这是因为文件服务器上的磁盘空间不大于10%了 storage上的剩余磁盘空间必须在10%以上才能上传文件成功,否则上传失败. 解决方法: 拓展服务器的内存空间,也可以删除一些不用的文件

  3. MySQL出现:ERROR 3 (HY000): Error writing file '/tmp/MYbEd05t' (Errcode: 28)

    在执行一个有1000万条记录的MySQL查询语句时,出现了上面的错误.百度折腾了很长时间,终于解决,特此记录. 使用perror 28查看错误原因:OS error code 28: No space ...

  4. VS2015 C#利用QrCodeNet生成QR Code

    Step by step Create QR Code with QrCodeNet Step.1 新建項目 Step.2 在窗口中拖入一個Button Step.3 下載QrCodeNet代碼,解壓 ...

  5. mysql errorcode 28_MySQL出现Errcode:28错误提示解决办法

    问题一,是log日志太大也会导致mysql提示Error writing file 'xxx'( Errcode:28)错误了,解决办法很简单. 1.清理磁盘,释放空间: 2.SQL语句查询的原表数据 ...

  6. linux常见OS error code 值对照表

    当linux指令执行结束后: 返回值为 0,则表示程序执行成功. 返回值非 0,则表示程序执行出错,其提示所代表的意义可以参照以下error code 对照表: "OS error code ...

  7. mysql (errcode 28)_MySQL出现Errcode:28错误提示解决办法

    mysql出现Error writing file \'xxx\'( Errcode:28)的原因有很多种,下面我来总结一些常用的关于引起Errcode:28错误原因与解决方法. 问题一,是log日志 ...

  8. mysql (errcode 28)_异常、安装-偶遇MySQL/Writing file error (Errcode 28)-by小雨

    明天朋友几篇文章介绍了改异常.安装-的文章. 关联文章的地址 意注:本文出自 "阿飞"的客博 ,如果要转载本文章,请与作者系联! 明天安装verboice时偶遇MySQL/Writ ...

  9. mysql数据库建表失败_mysql数据库文件太大导致建表失败,如何避免

    [求助]mysql数据库文件太大导致建表失败,如何处理? 目录下各文件大小如下: root /mbsc/mysql/data # ll total 120646812 -rw-rw---- 1 mys ...

最新文章

  1. 《大数据时代》----重要理念摘抄
  2. Java集合框架源码解析之ArrayList
  3. JS删除String里某个字符的方法
  4. finalize方法作用
  5. linux下php可以实现哪些功能,基于Linux的远程管理系统的设计与实现(PHP)
  6. 小度智能音响拆解 芯片_拆解报告:小度人工智能音箱1S
  7. Darknet网络模型结构可视化
  8. Linux发行版简介
  9. 国内跨省游正式开放!旅行社要怎么抓住这个机会?
  10. linux6.6卸载防火墙,Linux-centos6.8下关闭防火墙
  11. 计算机汉字的输入和编辑教案,微机教案:汉字输入法
  12. 生成器(建造者)模式
  13. SpringBoot2-6 Web1-静态资源 默认4个目录,特别是resources 目录, webjars引入和内部资源访问,注意其内部resources目录 HandlerMapping
  14. GO、KEGG富集分析实例讲解
  15. 银行板块行情发令枪已打响12月7日天弘中证银行ETF发售1天
  16. XTU oj 1309唯一的子串
  17. [转载]JAVA号码工具类:实现手机固话号码判断与区号截取
  18. 展望计算机体系结构的未来发展方向(学院作业)随便写的
  19. dvd转wmv及wmv转flv参数(3M/1min)
  20. 地方标准、行业标准、国家标准查询网址汇总

热门文章

  1. Android 实现URL生成二维码
  2. 根据系统日期,判断输出该月份所属的季节(春、夏、秋、冬)
  3. 为什么很多程序员没有升级到架构师?
  4. 浅谈分布式一致性算法raft
  5. 微信-- 微信小程序开发
  6. 数据结构快速入门,数据结构基础详解
  7. Unity 截取摄像头圆形区域并保存 By Opencv
  8. Python分析10万条基金数据,探索基金定投的奥秘
  9. 工业相机介绍及其与普通相机的区别
  10. jmeter—使用插件测试并发