hdu6828
题目
简单模拟

#include <iostream>using namespace std;
typedef long long ll;
string s;
ll x,y,z;
char c;
int flag=-1;
int vv;
int main()
{while(cin>>s){vv=0;flag=-1;for(int b=2;b<=16;b++){x=0;int i=0;for(;i<s.size();i++){if(s[i]=='+'){y=x;x=0;c=s[i];}else if(s[i]=='-'){y=x;x=0;c=s[i];}else if(s[i]=='*'){y=x;x=0;c=s[i];}else if(s[i]=='/'){y=x;x=0;c=s[i];}else if(s[i]=='='){z=x;x=0;}else{if(s[i]>='A'&&s[i]<='Z'){if(s[i]-'A'+10>=b){vv=0;break;}elsex=x*b+s[i]-'A'+10;}else{if(s[i]-'0'>=b){vv=0;break;}elsex=x*b+s[i]-'0';}}}if(i==s.size())vv=1;if(!vv)continue;if(c=='+'){if(y+z==x){flag=b;break;}}else if(c=='-'){if(y-z==x){flag=b;break;}}else if(c=='*'){if(y*z==x){flag=b;break;}}else{if(y%z==0&&y/z==x){flag=b;break;}}}cout<<flag<<endl;}return 0;
}

hdu6827
题目

就是一个求规律类似于

#include <iostream>using namespace std;
typedef long long ll;
int const mod=1e9+7;
int a[200005];
const int kk=2e5+5;
ll inv[kk];
void getInv(ll mod)
{inv[1]=1;for(int i=2;i<kk;i++)inv[i]=(mod-mod/i)*inv[mod%i]%mod;
}
int fast_pow(int a,int n)
{int res=1;int temp=a;while(n){if(n&1){res=(1ll*res*temp)%mod;}temp=1ll*temp*temp%mod;n>>=1;}return res%mod;
}
int main()
{ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int T;getInv(mod);int res;int ans;int bns;cin>>T;while(T--){res=0;ans=0;bns=0;int n;cin>>n;ll di=(1ll*n*(n+1)/2)%mod;di=fast_pow(di,mod-2);for(int i=1;i<=n;i++){res=(1ll*res+inv[i])%mod;cin>>a[i];}for(int i=1;i<=n/2;i++){ans=(1ll*ans+res)%mod;bns=(1ll*bns+(1ll*ans*a[i])%mod)%mod;bns=(1ll*bns+(1ll*ans*a[n+1-i])%mod)%mod;res=(1ll*res+mod-inv[i]+mod-inv[n+1-i])%mod;}if(n%2!=0){ans=(1ll*ans+res)%mod;bns=(1ll*bns+(1ll*ans*a[n/2+1])%mod)%mod;}bns=(1ll*bns*di)%mod;cout<<bns<<"\n";}return 0;
}

hdu6832
题目
就是一个回溯更新维护题

#include <bits/stdc++.h>
using namespace std;
typedef long long  ll;
const int INF=1e9+5;
const int mod=1e9+7;
const int maxn=1e5+5;
const int maxm=2e5+5;
struct node
{int a,b;
};
node po[maxn];
struct edge
{int v,next;ll w;
};
int fa[maxn];
edge no[maxm*2];
int head[maxn];
int cnt;
ll ans;
int n,m;
ll zero,one;
int find_(int  x)
{return x==fa[x]?x:fa[x]=find_(fa[x]);
}
void add(int x,int y,ll w)
{no[cnt].v=y;no[cnt].w=w;no[cnt].next=head[x];head[x]=cnt;cnt++;
}
void init()
{ans=zero=one=0;cnt=1;for(int i=1;i<=n;i++){fa[i]=i;head[i]=0;po[i].a=po[i].b=0;}
}
void dfs(int u,int fa)
{for(int i=head[u];i;i=no[i].next){int v=no[i].v;if(v==fa)continue;dfs(v,u);po[u].a+=po[v].a;po[u].b+=po[v].b;}for(int i=head[u];i;i=no[i].next){int v=no[i].v;ll w=no[i].w;if(v==fa)continue;ans=(ans+((zero-po[v].a)*po[v].b%mod*w%mod))%mod;ans=(ans+((one-po[v].b)*po[v].a%mod*w%mod))%mod;}
}
void solve()
{for(int i=1;i<=n;i++){int x;cin>>x;if(x==0)po[i].a=1,zero++;elsepo[i].b=1,one++;}ll res=1;for(int i=1;i<=m;i++){res=(res*2)%mod;int x,y;cin>>x>>y;int fax=find_(x);int fay=find_(y);if(fax!=fay){fa[fax]=fay;add(x,y,res);add(y,x,res);}}dfs(1,-1);cout<<ans<<endl;
}
int main() {ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int _=1;cin>>_;while(_--){cin>>n>>m;init();solve();}return 0;
}

hdu6836
题目
求所有生成树的期望 权 每一个生成树的期望权是 权的&
拆分 二进制 直接对每一个来一遍求(无向图)最小生成树的个数 矩阵树定理 求行列式

#include <bits/stdc++.h>
using namespace std;
typedef long long  ll;
const int INF=1e9+5;
const int mod=998244353;
const int maxn=105;
const int maxm=1e4+5;
int n,m;
vector<vector<int> >vv;
ll result;
struct edge
{int x,y;ll w;
};
edge no[maxm];
int map_[maxn][maxn];
ll quickpow(ll a,int n,int mod)
{ll res=1;ll temp=a;while(n){if(n&1){res=res*temp%mod;}temp=temp*temp%mod;n>>=1;}return res%mod;
}
void init()
{vv.clear();for(int i=1;i<=n;i++){for(int j=1;j<=n;j++){map_[i][j]=0;}}
}
ll Determinant(const vector<vector<int> >& A) {ll res = 1;int n = A.size(), cnt = 0;vector<vector<int> > B(n, vector<int>(n));for (int i = 0; i < n; ++i)for (int j = 0; j < n; ++j)B[i][j] = A[i][j];for (int i = 0; i < n; ++i) {int pivot = i;for (int j = i; j < n; ++j)if (abs(B[j][i]) > abs(B[pivot][i]))pivot = j;if (i != pivot) {swap(B[i], B[pivot]);cnt ^= 1;}if (B[i][i] == 0)return -1;ll val = quickpow(B[i][i], mod - 2, mod);for (int j = i + 1; j < n; ++j) {ll coe = B[j][i] * val % mod;for (int k = i; k < n; ++k)B[j][k] = (B[j][k] - 1ll * coe * B[i][k] % mod) % mod;}}for (int i = 0; i < n; ++i)res = res * B[i][i] % mod;if (cnt)res = -res;if (res < 0)res += mod;return res;
}
void solve()
{result=0;cin>>n>>m;init();for(int i=1;i<=m;i++){cin>>no[i].x>>no[i].y>>no[i].w;}for(int i=1;i<=m;i++){int u=no[i].x;int v=no[i].y;map_[u][u]++;map_[v][v]++;map_[u][v]--;map_[v][u]--;}for(int i=1;i<n;i++){vv.push_back({});for(int j=1;j<n;j++){vv[i-1].push_back(map_[i][j]);}}ll sum=Determinant(vv);sum=quickpow(sum,mod-2,mod);for(int i=0;i<30;i++){init();for(int j=1;j<=m;j++){int u=no[j].x;int v=no[j].y;ll w=no[j].w;if(w&(1ll<<i)){map_[u][u]++;map_[v][v]++;map_[u][v]--;map_[v][u]--;}}for (int i = 1; i < n; ++i) {vv.push_back({});for (int j = 1; j < n; ++j)vv[i - 1].push_back(map_[i][j]);}ll ans=Determinant(vv);if(ans==-1)continue;ans=ans*(1ll<<i)%mod;result=(result+ans)%mod;}cout<<result*sum%mod<<endl;
}
int main() {ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int _=1;cin>>_;while(_--){solve();}return 0;
}

hdu6831
题目
打表

#include <bits/stdc++.h>
using namespace std;
typedef long long  ll;
const int INF=1e9+5;
string s="01145141919114";
vector<int>vv[14][14];
map<int,int>mm[14][14];
int flag[5000]={0};
void init()
{for(int i=1;i<=13;i++){for(int j=i;j<=min(13,i+3);j++){int res=0;for(int k=i;k<=j;k++){res=res*10+s[k]-'0';if(res>5000)break;}if(res<=5000&&mm[i][j][res]==0){vv[i][j].push_back(res);mm[i][j][res]=1;}}}
}
void solve()
{for(int len=2;len<=13;len++){for(int i=1;i<=13-len+1;i++){for(int t=1;t<len;t++){int l=i;int r=i+len-1;int mid=i+t-1;for(int j=0;j<vv[l][mid].size();j++){for(int k=0;k<vv[mid+1][r].size();k++){int res=vv[l][mid][j]+vv[mid+1][r][k];if(res<=5000&&mm[l][r][res]==0){mm[l][r][res]=1;vv[l][r].push_back(res);}res=vv[l][mid][j]*vv[mid+1][r][k];if(res<=5000&&mm[l][r][res]==0){mm[l][r][res]=1;vv[l][r].push_back(res);}}}}}}for(int i=1;i<=13;i++){for(int j=0;j<vv[1][i].size();j++){if(flag[vv[1][i][j]]==0){flag[vv[1][i][j]]=i;}}}cout<<"int a[5005]={0,";for(int i=1;i<=5000;i++){if(!flag[i]){cout<<"-1";if(i!=5000)cout<<",";}else{cout<<flag[i];if(i!=5000)cout<<",";}}cout<<"};";
}
int main() {ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);int _=1;//cin>>_;while(_--){init();solve();}return 0;
}

2020hdu多校6相关推荐

  1. 矩阵树定理2020HDU多校第6场j-Expectation[位运算+期望]

    矩阵树定理 用于求解图上面生成树的个数,生成树的个数等于基尔霍夫矩阵的任何一个N-1阶主子式的行列式的绝对值 矩阵树模板 struct Matrix_Tree {ll a[N][N];Matrix_T ...

  2. [置顶]2010年东北大学ACM程序设计竞赛冬季校赛题解

    8题只做出4题比较easy的题,而且做得挺麻烦,看来还要多练练. AC的题如下 NEUOJ  1112 I Love Apple Description So many people love app ...

  3. 计算机应用基础教材编写建议,【计算机应用论文】计算机应用基础校本教材编写研究(共3136字)...

    校本课程(school-basedcurriculum)即以学校为本位.由学校自己确定的课程,与国家课程.地方课程相对应.这一思想源于20世纪六七十年代的西方发达国家,主张学校的教师.学生.学生家长. ...

  4. 数据结构题及c语言版答案9.14,十套数据结构试题+答案+难题解析(精校版)

    十套数据结构试题+答案+难题解析(精校版) 更新时间:2017/2/9 10:47:00  浏览量:643  手机版 数据结构试卷(一) 一.单选题(每题 2 分,共20分) 1. 栈和队列的共同特点 ...

  5. 从普本到北大:我的跨校跨专业考研经验

    首先做一个我考研情况的简介. 经历了2013年考研的混战,据说是史上考研人数顶峰的年份,因为2014改革,不再有自费生之后,人民群众对于所谓学术硕士的需求量激减,继 而投奔价格费用相当,读书年份较少的 ...

  6. 2019年牛客多校第1场 赛后总结

    A题 :Equivalent Prefixes  题意:就是给你两个有n个不同数的串,然后保证1-p区间内任选一个区间,使得区间中最小值的下标相同,找到最大的p值  思路:我的思路是设置两个单调栈,然 ...

  7. 国内高校硕博补贴大公开!(某校博士在读已经年薪 25w 了)

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 转自 | 中国农业大学论坛,论文项目硕博招聘 仅作学术分享,不代表本 ...

  8. 最后通牒!这所985大学通知近百名硕博研究生限期回校答辩,逾期退学!

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 整理:CVer 来源:科奖中心 本文转载自:双一流高校 近日,吉林大 ...

  9. 湖南长郡2021高考成绩查询时间,2021年湖南新高考六校、长郡十五校联考时间公布...

    2021年湖南新高考六校.长郡十五校联考时间公布 导读:距离2021年高考时间仅剩不到一百天,各个省份都的高三学子都进入紧张阶段.开始了各种模拟考试.2021届湖南省炎德英才大联考的考试时间也已经公布 ...

最新文章

  1. [转]常用OCR软件介绍
  2. boost::function_types::is_member_function_pointer用法的测试程序
  3. 纪实:对CSDN博客系统的一些质疑
  4. linux添加硬盘永久挂载,linux新增硬盘如何挂载
  5. Java各版本特性简介
  6. Build Settings发布设置
  7. 20200706每日一句
  8. matlab高级教程,Matlab绘图系列之高级绘图教程
  9. vue创建项目自定义配置
  10. 什么是敏捷开发?它有什么特点
  11. OSError: [WinError 1455] 页面文件太小,无法完成操作 报错解决
  12. 用C语言求和、找数组中的最大值以及求平均值
  13. 《东周列国志》第九十二回 赛举鼎秦武王绝胫 莽赴会楚怀王陷秦
  14. C++面向对象课程设计报告_快递系统
  15. 引擎所有固定变量大全
  16. jQuery漂浮横幅图片广告代码
  17. linux重新分区丢失数据恢复,Linux数据恢复专题(1)——恢复丢失的分区(转载)...
  18. 木心先生的句子,不仅美,而且富有深意! ​​​
  19. 随手笔记Cookie
  20. 哪些机型适配了android11,coloros11适配机型_coloros11支持机型有哪些

热门文章

  1. SQL Server中Rowcount与@@Rowcount的用法
  2. 【濡白的C语言】从零开始的刷题之旅
  3. 深入理解Linux内核(一)——Linux操作系统基础概念
  4. 磁盘数据寻址方式(CHS与LBA相互转换)
  5. /tmp文件夹和/var/tmp文件夹的定期清理机制
  6. 如何使用hadoop进行Bert tokenize
  7. linux修改内核禁用模块,sysctl以及利用sysctl禁用ipv6模块
  8. 个人项目管理计划及实施建议(转载)
  9. java split和js split的区别
  10. 树莓派win10和linux,最小Win10电脑树莓派3评测:一次近乎完美的升级