预计分数:100+40+30=170

实际假分数:0+0+0=0 CE*3

实际真分数:60+50+0=110

老师没把我的程序放的文件夹里面,于是。。。。。

T1

https://www.luogu.org/problem/show?pid=T15678

一眼秒C(n,k)

组合数,

不过数组少开了1.。。翻车了呜呜呜~~~~(>_<)~~~~

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define LL long long
using namespace std;
const LL MAXN=*1e6;
const LL INF=0x7ffff;
const LL mod=1e9+;
const LL limit=*1e6+;
inline LL read()
{
char c=getchar();LL flag=,x=;
while(c<''||c>'') {if(c=='-') flag=-;c=getchar();}
while(c>=''&&c<='') x=x*+c-,c=getchar();return x*flag;
}
LL n,k;
LL a[MAXN];
LL js[MAXN];
LL x,y;
LL exgcd(LL a,LL b,LL &x,LL &y)
{
if(b==)
{
x=,y=;return a;
}
LL r=exgcd(b,a%b,x,y)%mod;
LL tmp=x%mod;x=y%mod;y=tmp-(a/b)*y%mod;
return r%mod;
}
LL C(LL n,LL k)
{
LL r=exgcd((js[n-k]%mod*js[k]%mod)%mod,mod,x,y);
while(x<)
x+=mod;
LL yy1=js[n]%mod;
LL xx1=x%mod;
LL rt=((LL)yy1*xx1)%mod;
return rt;
}
int main()
{
//12 freopen("cube.in","r",stdin);
// freopen("cube.out","w",stdout);
n=read();k=read();
// for(LL i=1;i<=n;i++)
// a[i]=read();
js[]=;
for(LL i=;i<=limit;i++) js[i]=((LL)js[i-]%mod*i%mod)%mod;
LL ans=C(n,k)%mod;
printf("%lld",ans%mod);
return ;
} /*
3 2
1 1 0
//3 4 2
0 0 0 0 //6 5 3
1 0 1 0 1//10
// */

T2

没想到正解

正解其实很简单

先求最大生成树

在建最大生成树的时候记录下选择k次的最大限重

每次二分查找

考场上为了求稳光敲了暴力

 #include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;
const int MAXN=1e6+;
inline int read()
{
char c=getchar();int flag=,x=;
while(c<''||c>'') {if(c=='-') flag=-;c=getchar();}
while(c>=''&&c<='') x=x*+c-,c=getchar();return x*flag;
}
int n,m,q;
int fa[MAXN];
struct node
{
int u,v,w;
}edge[MAXN];
int num=;
inline void add_edge(int x,int y,int z)
{
edge[num].u=x;
edge[num].v=y;
edge[num].w=z;num++;
}
int comp(const node &a,const node &b)
{
return a.w>b.w;
}
int find(int x)
{
if(fa[x]==x) return fa[x];
else return fa[x]=find(fa[x]);
}
inline void unionn(int a,int b)
{
fa[find(a)]=find(b);
}
int happen[MAXN];
int cnt=;
inline void Kruskal()
{
sort(edge+,edge+num,comp);
int tot=;
for(int i=;i<=num-;i++)
{
if(find(edge[i].u)!=find(edge[i].v))
{
unionn(edge[i].u,edge[i].v);
happen[++cnt]=edge[i].w;
tot++;
if(tot==n-) break;
}
}
reverse(happen+,happen+cnt+);
}
int main()
{
n=read();m=read();q=read();
for(int i=;i<=n;i++) fa[i]=i;
for(int i=;i<=m;i++)
{
int x=read(),y=read(),z=read();
add_edge(x,y,z);
}
Kruskal();
for(int i=;i<=q;i++)
{
int p=read();
int pos=lower_bound(happen+,happen+cnt+,p)-happen;
printf("%d\n",pos);
}
return ;
}

t2

T3

写了30分的暴力,但是被卡T了。

 #include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#define LL long long
using namespace std;
const int MAXN=1e4+;
const int INF=0x7ffff;
const int mod1=;
const int mod2=;
const int mod =1e9+;
inline int read()
{
char c=getchar();int flag=,x=;
while(c<''||c>'') {if(c=='-') flag=-;c=getchar();}
while(c>=''&&c<='') x=x*+c-,c=getchar();return x*flag;
}
int n,q;
char word[MAXN][];
int len[MAXN];
int sum[MAXN];//长度>=i的单词有多少个
int mxlen=;
int hash[MAXN*];
bool pd(int now,int nowlen,int will,int need)
{
if(need-nowlen>len[will]) return ;
unsigned int seed=;
unsigned LL h=;
for(int i=;i<=nowlen;i++)
h=(h+( (seed*word[now][i])%mod2))%mod1,seed=seed*seed;
for(int i=len[will]-(need-nowlen)+;i<=len[will];i++)
h=(h+( (seed*word[will][i])%mod2))%mod1,seed=seed*seed;
h=h%mod1;
if(hash[h]==)
{
hash[h]=;
return ;
}
return ;
}
int main()
{
// freopen("word.in","r",stdin);
// freopen("word.out","w",stdout);
n=read(),q=read();
for(int i=;i<=n;i++)
{
scanf("%s",word[i]+);
len[i]=strlen(word[i]+);
mxlen=max(len[i],mxlen);
for(int j=len[i];j>=;j--)
sum[j]++;
}
for(int i=;i<=q;i++)
{
memset(hash,,sizeof(hash));
int qr=read(),ans=;
for(int j=;j<=n;j++)//枚举每个单词
for(int k=;k<=min(len[j],qr-);k++)//这个单词的长度
for(int l=;l<=n;l++)// 枚举其他的单词
if(pd(j,k,l,qr)==)
{
/* for(int o=1;o<=k;o++) cout<<word[j][o];
for(int o=len[l]-(qr-k)+1;o<=len[l];o++) cout<<word[l][o];
cout<<endl;*/
ans=(ans+)%mod;
}
printf("%d\n",ans%mod);
}
return ;
} /*
2 2
cool
at
6
3 //7 \n 5
*/

正解:

没听懂。。。。。

总结

终于翻了一次车了(啪,成天打暴力还好意思翻车)

T2没想到正解,,好失败啊。。。。

T3被卡成零分。。

交题的时候因为各种原因老师忘记把我的程序放到文件夹里了。。

GG

Day5上午解题报告的更多相关文章

  1. Day1上午解题报告

    预计分数:100+60+0=160 实际分数:100+30+20=150 T1立方数(cubic) 题目描述 LYK定义了一个数叫“立方数”,若一个数可以被写作是一个正整数的3次方,则这个数就是立方数 ...

  2. Day2上午解题报告

    预计分数:100+0+60=160 实际分数:100+0+60=160 mmpT1数据错了... T1遭遇 题目描述 你是能看到第一题的 friends呢. —— hja ?座楼房,立于城中 . 第? ...

  3. Day3上午解题报告

    预计分数:100+40+50=190 实际分数:100+40+50=190 T1 https://www.luogu.org/problem/show?pid=T15365 表示从来没做过博弈论的题, ...

  4. Day5下午解题报告1

    预计分数:100+60+30=190 实际分数:100+60+30=190 终于有一道无脑T1了哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 ...

  5. Day4上午解题报告

    预计分数:50 +0+0=50 实际分数:50+0+10=60 毒瘤出题人,T3不给暴力分 (*  ̄︿ ̄) T1 https://www.luogu.org/problem/show?pid=T155 ...

  6. 夏令营提高班上午上机测试 Day 4 解题报告

    我要是没记错的话,今天的题难度算挺适中的. *标程来自高天宇哥哥 T1:小G的字符串 题目描述 有一天,小 L 给小 G 出了这样一道题:生成一个长度为 n 的.全由小写英文字母构成的字符串,只能使用 ...

  7. Codeforces Round #382 (Div. 2) 解题报告

    CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...

  8. 【LeetCode】306. Additive Number 解题报告(Python)

    [LeetCode]306. Additive Number 解题报告(Python) 标签(空格分隔): LeetCode 作者: 负雪明烛 id: fuxuemingzhu 个人博客: http: ...

  9. CH Round #56 - 国庆节欢乐赛解题报告

    最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...

随机推荐

  1. 各大IT企业招聘所须要求技能

    1.中兴 ZTE 软件研发project师 工作地点:西安.深圳.上海.天津 主要职责: 1.从事通讯产品相关软件开发 2.进行软件具体设计,代码编写.单元測试.集成測试.系统測试等 3.进行软件代码 ...

  2. Install the IIS 6.0 Management Compatibility Components in Windows 7 or in Windows Vista from Control Panel

    https://technet.microsoft.com/en-us/library/bb397374(v=exchg.80).aspx Install the IIS 6.0 Management ...

  3. 罗列几个Android插件化开发框架

    携程插件化框架 ACDD插件化框架 360插件化框架 Android-Plugin-Framework DL APK动态加载框架 部分框架对比 DynamicLoadApk 迁移成本很重:需要使用『t ...

  4. vue的钩子函数

    1.computed 计算属性 计算属性将被混入到 Vue 实例中.所有 getter 和 setter 的 this 上下文自动地绑定为 Vue 1..aPlus: { get: function ...

  5. P3908 异或之和

    题目描述 求1 \bigoplus 2 \bigoplus\cdots\bigoplus N1⨁2⨁⋯⨁N 的值. A \bigoplus BA⨁B 即AA , BB 按位异或. 输入输出格式 输入格 ...

  6. java httpRequest和Response

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象.request和response对象即然代表请求和响应,那我们要 ...

  7. js中运算符优先级问题

    其实事情是这样的,最近看到不少朋友讨论一道据说不知道哪儿的笔试题目,题目如下: var a = {n:1}; var b = a; a.x = a = {n:2}; 请写出a.x的值. 当然通过运行, ...

  8. boost.property_tree的高级用法(你们没见过的操作)

    版权声明:本文为博主原创文章,未经博主允许不得转载. 前一阵写项目,终于将这个boost下的xml读取类完成了,由于网上对property_trees的讲解很少,最多也就到get_child这个层面, ...

  9. this对象的理解

    (回答一:) (1).js的this指向是不确定的,也就是说是可以动态改变的.call/apply 就是用于改变this指向的函数,这样设计可以让代码更加灵活,复用性更高 (2).this 一般情况下 ...

  10. 【Henu ACM Round #13 F】Fibonacci-ish

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 枚举序列的头两个数字是什么 O(N^2) 然后头两个数字确定之后. f[3],f[4]..就确定了 只需查看f[3],f[4]..是 ...