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. 文件 服务器 要求,文件服务器硬件要求
  3. delphi使用sqlite数据库时的中文路径问题
  4. UA MATH574M 统计学习V Variable Selection: LASSO
  5. FI_ITEMS_MASS_CHANGE 批量更新 凭证文本 (凭证被锁、一些项目没更改到的解决方法)
  6. 解决 LLVM 错误提示 may only occur zero or one times!
  7. Ubuntu使用jupyter notebook +导出PDF
  8. Getting Started with the Table Component
  9. Bootstrap3 栅格系统之列平移
  10. 页面重绘和回流以及优化
  11. 125万像素智能相机收费站解决方案
  12. TCP: SYN ACK FIN RST PSH URG
  13. linux嵌入式面试300问,经典嵌入式Linux面试题3问
  14. 考研前辈最后悔的事都有哪些?
  15. 关于被锁机软件修改硬盘引导扇区锁机软件读取密码的方法
  16. SNN综述(1):深度脉冲神经网络
  17. html中div是什么意思
  18. 初学者-----HTTP协议的基本格式
  19. Gitlab 设置页面语言为简体中文
  20. 数学之美读书感悟03

热门文章

  1. 电机控制(2)直流电机的simulink仿真
  2. CSR8670蓝牙芯片驱动I2C接口的1602LCD显示屏
  3. 解决Typecho站点Sitemap插件不可用问题
  4. Interview之NLP:人工智能领域求职岗位—自然语言处理NLP算法工程师职位的简介、薪资介绍、知识结构之详细攻略
  5. C语言中的String类
  6. 编写一个布雷程序,在一个10*10的范围内随机布5-10颗雷,显示结果
  7. [附源码]Python计算机毕业设计毕业设计管理系统
  8. 写一个关机代码让别人的电脑根据你的指令关机,c语言写小程序恶搞别人
  9. Python对比两文件
  10. 小白的成长过程 学习Python的第一天