1001:2048

很明显,一开始看错题了。。。sad

这题目我感觉挺卡时间的。。。

dp[i][j]:在选择2^i的时候,选择的和为j*2^i到(j+1)*2^i-1时候的情况。

#include <iostream>
#include<stdio.h>
#include<vector>
#include<queue>
#include<stack>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
#define LL __int64
#define lcm(a,b) (a*b/gcd(a,b))
#define mod 998244353
#define maxn 110000
//O(n)求素数,1-n的欧拉数
int num[21];
LL dp[15][2100];
LL jie[maxn];
LL use[15][2100];
int n;
int add(int x)
{if(x==0)return 20;int c=0;while(x!=1){if(x&1)return 20;x=x>>1;c++;}return c;
}
LL q_mod(LL a,LL b,LL n)
{LL ret=1;LL tmp=a%n;while(b){//基数存在if(b&0x1) ret=ret*tmp%n;tmp=tmp*tmp%n;b>>=1;}return ret;
}
LL select(int n,int m)
{if(m>n)return 0;LL ans=jie[n];ans=(ans*q_mod((jie[m]*jie[n-m])%mod,mod-2,mod))%mod;return ans;
}
void select()
{for(int i=1;i<=11;i++){for(int j=0;j<2048;j++){use[i][j]=select(num[i-1],j);}}
}
void dos()
{select();for(int j=0;j<2048;j++)dp[1][j]=use[1][j];for(int i=2; i<12; i++){int cnt=1<<(12-i);for(int j=0; j<cnt; j++){for(int k=0; k<=j*2+1; k+=2){dp[i][j]+=((dp[i-1][k]+dp[i-1][k+1])*use[i][j-k/2])%mod;}dp[i][j]%=mod;}}LL ans=0;ans=q_mod(2,num[20],mod);LL ps=(dp[11][0]+dp[11][1])%mod;ps=q_mod(2,n-num[20],mod)-ps;ps=(ps+mod)%mod;ans=(ans*ps)%mod;cout<<ans<<endl;
}
int main()
{//freopen("1001.in","r",stdin);//freopen("10011.out","w",stdout);int cas=0;int x;jie[0]=1;for(int i=1; i<maxn; i++)jie[i]=(jie[i-1]*i)%mod;while(~scanf("%d",&n)&&n){memset(num,0,sizeof(num));memset(dp,0,sizeof(dp));cas++;for(int i=1; i<=n; i++){scanf("%d",&x);num[add(x)]++;}printf("Case #%d: ",cas);dos();}return 0;
}

1004:Kingdom

超级后悔当时没有看这个题。。。。明显水题嘛。。。。

相当于拓扑排序。。

每次弹出入度最小的点。根本没有-1的情况。。。被骗了。。。

#include <iostream>
#include<stdio.h>
#include<vector>
#include<queue>
#include<stack>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
#define LL long long
#define lcm(a,b) (a*b/gcd(a,b))
//O(n)求素数,1-n的欧拉数
#define maxn 505
int mp[maxn][maxn];
vector<int>vec;
int du[maxn];
int n;
void tuopu()
{vec.clear();int i;while(1){int now=0;int minn=9999;for(i=1;i<=n;i++){if(du[i]>=0&&minn>du[i]){now=i;minn=du[i];}}if(now==0)break;vec.push_back(now);du[now]=-1;for(i=1;i<=n;i++){if(mp[i][now])du[i]--;}}if(vec.size()<n)cout<<"-1"<<endl;else{for(int i=vec.size()-1;i>=0;i--){printf("%d",vec[i]);if(i!=0)printf(" ");else puts("");}}
}
char str[11001];
int main()
{LL p,g,y;//freopen("1004.in","r",stdin);// freopen("10041.out","w",stdout);while(~scanf("%d",&n)&&n){memset(du,0,sizeof(du));for(int i=1;i<=n;i++){scanf("%s",str);for(int j=1;j<=n;j++){mp[i][j]=str[j-1]-'0';if(mp[i][j])du[i]++;}}tuopu();}return 0;
}

1007:Multiplication table

整场比赛最伤的就是这个题,一开始思路有问题,后来就一直带偏了。。。

很明显,对于不同的数,首位的类别有不同种。

#include <iostream>
#include<stdio.h>
#include<vector>
#include<queue>
#include<stack>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
#define LL long long
#define lcm(a,b) (a*b/gcd(a,b))
//O(n)求素数,1-n的欧拉数
int mp[2][505][505];
vector<int>vec[505];
int ans[505];
int num[505];
int in()
{char ch;int a = 0;while((ch = getchar()) == ' ' || ch == '\n');a += ch - '0';while((ch = getchar()) != ' ' && ch != '\n'){a *= 10;a += ch - '0';}return a;
}
int main()
{// freopen("1007.in","r",stdin);// freopen("10071.out","w",stdout);int x,y;int cas=0;int check[101];int n;while(~scanf("%d",&n)&&n){cas++;memset(ans,-1,sizeof(ans));for(int i=0; i<n; i++){for(int j=0; j<n; j++){x=in();y=in();mp[0][i][j]=x;mp[1][i][j]=y;if(x==y&&x==i&&i==j){ans[0]=i;}}}for(int i=0; i<n; i++){if(mp[0][i][i]==ans[0]&&mp[1][i][i]!=ans[0]&&mp[1][i][i]==i){ans[1]=i;break;}}for(int i=0; i<n; i++){vec[i].clear();for(int j=0; j<n; j++)vec[i].push_back(mp[0][i][j]);sort(vec[i].begin(),vec[i].end());num[i]=1;for(int j=1; j<vec[i].size(); j++){if(vec[i][j]!=vec[i][j-1])num[i]++;}if(num[i]>1)ans[num[i]]=i;}printf("Case #%d:",cas);int leap=0;for(int i=0; i<n; i++){printf(" %d",ans[i]);if(ans[i]==-1)leap=1;}while(leap){cout<<check[110101010110]<<endl;}cout<<endl;}return 0;
}

2014多校联合-第八场相关推荐

  1. 2014多校联合-第六场

    最近这两场好无奈啊... 今天这场最后30分钟敲1001,压力倍增,虽然思路比较明确,但是代码打起来不怎么容易. 但是还是好在25分钟左右debug结束.提交wa,再提交,依然WA.......最后5 ...

  2. 2014多校联合-第七场

    1005: ( Stupid Tower Defense ) 由题意我们很明显可以知道,红色的塔放在最后面是最优的. 假如前i个塔,放j个绿塔,i-j个蓝塔.那么无论前i个塔的顺序怎么放,对后面的塔造 ...

  3. 2022杭电多校赛第八场

    2022杭电多校赛第八场 文章目录 2022杭电多校赛第八场 1004.Quel'Thalas 1001.Theramore 1011.Stormwind 1008.Orgrimmar 1005.Ir ...

  4. HDU 4868 Information Extraction(2014 多校联合第一场 H)

    看到这道题时我的内心是奔溃的,没有了解过HTML,只能靠窝的渣渣英语一点一点翻译啊TT. Information Extraction 题意:(纯手工翻译,有些用词可能在html中不是一样的,还多包涵 ...

  5. HDU 4893 Wow! Such Sequence!(2014年多校联合 第三场 G)(线段树)

    磨了一天的线段树,不能说完全搞清楚,只能说有一个大概的了解,靠着模板才把这道题A了,只能说太弱~~! 题意: 初始时有一字符串,全为0. 三种操作: 1 k d - add  把d加到第k个数上去 2 ...

  6. hdu 4937 Lucky Number(数学题 进制转换)2014多校训练第7场

    Lucky Number                                                                          Time Limit: 20 ...

  7. HDU 5762 Teacher Bo (鸽笼原理) 2016杭电多校联合第三场

    题目:传送门. 题意:平面上有n个点,问是否存在四个点 (A,B,C,D)(A<B,C<D,A≠CorB≠D)使得AB的横纵坐标差的绝对值的和等于CD的横纵坐标差的绝对值的和,n<1 ...

  8. 2019牛客暑期多校训练营(第八场) CDMA

    时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 524288K,其他语言1048576K Special Judge, 64bit IO Format: %lld 题目描述   Gro ...

  9. 2022杭电多校联赛第八场 题解

    比赛传送门 作者: fn 目录 签到题 1004题 Quel'Thalas / 奎尔萨拉斯(幻方) 1001题 Theramore / 塞拉摩岛(翻转字符串) 基本题 1011题 Stormwind ...

最新文章

  1. LabVIEW设置应用程序显示标签透明
  2. 删除文件夹下所有的文件_VB删除文件和文件夹的方法
  3. Microsoft SQL Server 全角转半角函数
  4. 凯利公式自动计算表_EXCEL——可自动计算的收支表,全函数计算,拿上就用!
  5. 计算机维护记录软件,《企业计算机软件故障维护记录》(4页)-原创力文档
  6. 如果你不会扒谱,来吧,这款软件给你超能力
  7. 中文分词(上)——获取和Word2Vec模型构建
  8. 金蝶凭证序时簿在哪_金蝶KIS旗舰版外购入库单序时簿界面没有凭证的按钮
  9. 斗兽棋项目开发计划书
  10. 大数据测试数据生成工具v1.0 --百万级别一键导出TXT,JSON,MYSQL 。---HIVE专属工具
  11. 总线揭密 串行传输VS并行传输
  12. 【Linux】资源查看top显示信息说明|top、iftop、iotop、htop、atop工具
  13. Everything 命令行 详细参数集
  14. 墨画子卿第四章第3节:金光洞
  15. edge浏览器如何把网页放到桌面_edge浏览器怎么把网页放桌面 - 卡饭网
  16. 服务器网站绕过备案,腾讯云服务器如何利用阿里DCDN绕过备案
  17. 微信朋友圈数据库模式如何设计的?
  18. EXCEL-分组排名(中美)
  19. Android 图片弹跳动画
  20. 魔塔之拯救白娘子~我的第一个VB6+DX8做的小游戏源码~17开始游戏-移动方向处理

热门文章

  1. 如何将 ONLYOFFICE 文档与 Sharepoint 进行连接
  2. matlab如何分类汇总,excel表格按照数据作图-excel怎么按分类汇总后的汇总数据绘制图表...
  3. 已知两点坐标求直线的一般表达式
  4. 2019.10.24
  5. android 百度地图 室内定位,百度地图4.0正式发布:室内定位功能亮相
  6. 微信视频号亮剑,微推贝贝推广引流再次升级
  7. mysql error 29_mysql ERROR 29 (HY000): File \'xxx.txt\' not found
  8. 正(斜)交平行投影变换矩阵
  9. 8个灯以此点亮c语言程序,单片机流水灯C语言程序(8个灯,依次点亮每个灯,延时500MS)...
  10. 利用Python语言编程,解决鸡兔同笼问题,已知同一个笼子里鸡和兔总共有h只,鸡和兔的脚数总共有f只,其中h和f需要用户输入,求鸡和兔各有多少只。