F读错题wa了三个小时。自闭了,不然I题有可能能出的。。已经想到组合数也敲完组合数板子了。

A:这。。。**题吧,第一眼看的这个就秒了

 #include<bits/stdc++.h>
#define pii pair<int,int>
#define mk(a,b) make_pair(a,b)
using namespace std;
typedef long long ll;
int a[],b[];
void slove(int n,int id){
if(id==) {
int k = ;
while (n) {
k++;
a[k] = n % ;
a[k]*=pow(,k-);
n /= ;
}
} else{
int k = ;
while (n) {
k++;
b[k] = n % ;
b[k]*=pow(,k-);
n /= ;
}
}
}
int t,x,y;
vector<pii>ans;
int main(){
ios::sync_with_stdio(false);
cin>>t;
while (t--){
memset(a,, sizeof(a));
memset(b,, sizeof(b));
ans.clear();
cin>>x>>y;
slove(x,);
slove(y,);
for(int i=;i<=;i++){
if(a[i]==)
continue;
for(int j=;j<=;j++){
if(b[j]==)
continue;
ans.push_back(mk(a[i],b[j]));
}
}
for(int i=;i<ans.size();i++){
if(i==ans.size()-){
cout<<ans[i].first<<" x "<<ans[i].second<<endl;
} else{
cout<<ans[i].first<<" x "<<ans[i].second<<" + ";
}
}
}
}

B: 这篇写的很好  https://blog.csdn.net/lzc504603913/article/details/83863102

有几个关键的性质一定要注意到。

如果一个点有两颗儿子,那么这个点的祖先全部没有答案。

如果一个点有三个及以上儿子,这个点及这个点的祖先全部没有答案。

如果一个点没答案,他的所有祖先全没答案。

那么我们可以把点分为三类。1.没答案的 2. 一条链的 3. 两条链的(也就是这个点有两个儿子,然后这两个儿子是两条链,不然没答案嘛)

然后我们考虑题目要求满足的条件。

唔...那篇说的太好了我目前还想不到其他更好的表达方式了。。。复述一遍没有多大意义,请移步去看上面那个链接吧。

(我懒得敲等式什么的(大雾))

C:又卡cin。。。小学数学题

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t;
double a,b,c,x;
int main(){
//ios::sync_with_stdio(false);
scanf("%d",&t);
while (t--){
scanf("%lf%lf%lf%lf",&a,&b,&c,&x);
double ans = ;
ans+=sqrt(a*a+(b+c+c)*(b+c+c));
x/=;
ans += sqrt(b*b+a*a)*x;
ans+=sqrt((c+c+b*(1.0-x))*(c+c+b*(1.0-x))+a*(1.0-x)*a*(1.0-x));
printf("%.10f\n",ans);
}
}

D:**

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,n,x,y;
int main(){
ios::sync_with_stdio(false);
cin>>t;
while (t--){
cin>>n>>x>>y;
if(n%==){
if(x>=n/&&y>=n/)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
} else{
if(y>=n/&&x>=n/+)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
}

E:我做的很麻烦,可以不开那个数组,直接记录当前已知的最大测试数据就行

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,k,n,m;
char c[];
int vis[];
void slove(int st,int en){
for(int i=st;i<=en;i++)
vis[i]=(c[i]=='S');
}
int main(){
ios::sync_with_stdio(false);
cin>>t;
while (t--){
memset(vis,, sizeof(vis));
memset(c,, sizeof(c));
cin>>n>>m>>k;
for(int i=;i<=n;i++)
cin>>c[i];
int mx = k;
slove(,mx);
int ans = ;
char op;int x;
while (m--){
cin>>op;
if(op=='A'){
slove(mx+,n);
mx = n;
} else{
cin>>x;
if(x>mx){
slove(mx+,x);
mx = x;
} else{
if(vis[x])
ans++;
}
}
}
cout<<ans<<endl;
}
}

F:我以为必须要全部用完,也就是“恰好”才可以。。。******************

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[],t,s1,s2,minn,ans,sum;
int main() {
ios::sync_with_stdio(false);
cin>>t;
while(t--) {
minn=1e12;
ans=s1=s2=sum=;
for(int i=;i<=;i++) {
cin>>a[i];
if(a[i]==)s1++;
if(a[i]>=) {
s2++;
minn=min(a[i]/,minn);
}
}
ans=s2*;
if(s1>) {
ans++;
sum=min(minn,s1);
}
else
sum=minn;
if(minn==1e12)sum=s1;
cout<<ans<<' '<<sum<<endl;
}
return ;
}

G:从四个角分别维护一下然后枚举删掉的行列

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,n,m;
int a[][];
int plu[][];
int pru[][];
int pld[][];
int prd[][];
void init(){
memset(plu,, sizeof(plu));
memset(pru,, sizeof(pru));
memset(pld,, sizeof(pld));
memset(prd,, sizeof(prd));
memset(a,, sizeof(a));
}
int main(){
ios::sync_with_stdio(false);
cin>>t;
while (t--) {
init();
cin >> n >> m;
for (int i = ; i <= n; i++)
for (int j = ; j <= m; j++)
cin >> a[i][j];
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
plu[i][j]=max(max(plu[i-][j],plu[i][j-]),a[i][j]);
}
}
for(int i=;i<=n;i++){
for(int j=m;j>=;j--){
pru[i][j]=max(max(pru[i][j+],pru[i-][j]),a[i][j]);
}
}
for(int i=n;i>=;i--){
for(int j=;j<=m;j++){
pld[i][j]=max(max(pld[i+][j],pld[i][j-]),a[i][j]);
}
}
for(int i=n;i>=;i--){
for(int j=m;j>=;j--){
prd[i][j]=max(max(prd[i+][j],prd[i][j+]),a[i][j]);
}
}
int ans = 1e9+;
for(int i=;i<n;i++){
for(int j=;j<m;j++){
ans = min(ans,max(max(max(plu[i-][j-],prd[i+][j+]),pru[i-][j+]),pld[i+][j-])-min(min(min(plu[i-][j-],prd[i+][j+]),pru[i-][j+]),pld[i+][j-]));
}
}
cout<<ans<<endl;
}
}

H:暴力统计出来所有的字母对就行。我是直接维护个前缀

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t,n,m,k;
string a,b;
int pre[];
int cnt[][];
int vis[][];
int main(){
ios::sync_with_stdio(false);
cin>>t;
while (t--){
cin>>n>>m>>k>>a>>b;
a="*"+a;b="*"+b;
memset(pre,, sizeof(pre));
memset(cnt,, sizeof(cnt));
memset(vis,, sizeof(vis));
for(int i=;i<=m;i++){
pre[b[i]-'a']=pre[b[i]-'a']+;
for(int j=;j<;j++){
cnt[b[i]-'a'][j]+=pre[j];
}
}
int l=,r=k;
ll ans = ;
while (r<=n){
if(vis[a[r]-'a'][a[l]-'a']){}
else
ans+=cnt[a[r]-'a'][a[l]-'a'],vis[a[r]-'a'][a[l]-'a']=;
l++,r++;
}
cout<<ans<<endl;
}
}

I:锁的方案数猜也能猜出来。。。

考虑 任选 m-1 个人,有C(n,m-1)种方案,每种方案都打不开,也就是都有至少一把锁是打不开的,所以锁最少是C(n,m-1)种。

对于钥匙,考虑先拿出来一个人,然后在n-1个人里选m-1个人,有C(n-1,m-1)种方案数,对于每种方案数,这个人都要有对应的钥匙,所以就是C(n-1,m-1)种方案数

 #include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 1e9+;
ll up[],inv[],down[];//down就是分子(分母*乘法逆元
void init(){
up[]=;
for(int i=;i<=;i++){
up[i]=up[i-]*i % mod;
}
inv[]=;//乘法逆元板纸,其实我也不懂...
for(int i=;i<=;i++){
inv[i]=(mod-mod/i)*inv[mod%i]%mod;
}
down[]=;
for(int i=;i<=;i++){
down[i]=down[i-]*inv[i]%mod;
}
}
ll C(ll x,ll y){//组合数(逃...
return up[x]*down[y]%mod*down[x-y]%mod;
}
int t;
ll n,m;
int main(){
ios::sync_with_stdio(false);
init();
cin>>t;
while (t--){
cin>>n>>m;
cout<<C(n,m-)<<" "<<C(n-,m-)<<endl;
}
}

J:遇见过,hdu上的好像是,问你杨辉三角第n行奇数的个数,这个是有规律的,一百度啥都有,就直接秒了

那个,,你要是看不出来这公式就是组合数就当我啥都没说。。。

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int t;
ll n;
int main(){
ios::sync_with_stdio(false);
cin>>t;
while (t--){
cin>>n;
int num = ;
ll tmp = n;
while (n){
if(n&)
num++;
n>>=;
}
cout<<((tmp+)-(1ll<<num))<<endl;
}
}

K:一开始又看错了感觉奇难无比,但是A题那么**的题竟然人数跟K差不多,就重新看了下,,发现他这个只能按照顺序平移一位。。。

我一开始看成只要是能组成一个环就可以。。。然后头痛欲裂。。

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int na[],nb[];
int t;
string a,b;
int main(){
ios::sync_with_stdio(false);
cin>>t;
while (t--){
memset(na,, sizeof(na));
memset(nb,, sizeof(nb));
int x;cin>>x;
cin>>a>>b;
string aa="",bb="";
for(int i=;i<x;i++){
if(a[i]!=b[i]){
aa+=a[i];
bb+=b[i];
}
}
int n = aa.length();
int flag = ;
for(int i=;i<n;i++){
if(aa[i]!=bb[i-]) {
flag = ;
break;
}
}
if(aa[]!=bb[n-])
flag = ;
if(flag)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}

这个B题感觉有点硬核,主要是我也没去想B题咋做。除此之外失误太多了。理论10题实际8题。。。另外3星场水题也太多了。。。说实话我们出的新生赛的那些水题都比大多数的三星场难很多。。。

滚回宿舍了。明天下午尽量快点做完计组实验然后去新生赛现场凑热闹嘿嘿嘿。

Gym 101972的更多相关文章

  1. ACM: Gym 101047M Removing coins in Kem Kadrãn - 暴力

     Gym 101047M Removing coins in Kem Kadrãn Time Limit:2000MS     Memory Limit:65536KB     64bit IO Fo ...

  2. ACM: Gym 101047K Training with Phuket's larvae - 思维题

     Gym 101047K Training with Phuket's larvae Time Limit:2000MS     Memory Limit:65536KB     64bit IO F ...

  3. ACM: Gym 101047E Escape from Ayutthaya - BFS

    Gym 101047E Escape from Ayutthaya Time Limit:2000MS     Memory Limit:65536KB     64bit IO Format:%I6 ...

  4. ACM: Gym 101047B Renzo and the palindromic decoration - 手速题

     Gym 101047B  Renzo and the palindromic decoration Time Limit:2000MS     Memory Limit:65536KB     64 ...

  5. Gym 101102J---Divisible Numbers(反推技巧题)

    题目链接 http://codeforces.com/gym/101102/problem/J Description standard input/output You are given an a ...

  6. Gym 100917J---Judgement(01背包+bitset)

    题目链接 http://codeforces.com/gym/100917/problem/J Description standard input/outputStatements The jury ...

  7. Gym 100917J---dir -C(RMQ--ST)

    题目链接 http://codeforces.com/gym/100917/problem/D problem description Famous Berland coder and IT mana ...

  8. Gym 101102D---Rectangles(单调栈)

    题目链接 http://codeforces.com/gym/101102/problem/D problem  description Given an R×C grid with each cel ...

  9. Gym 101102C---Bored Judge(区间最大值)

    题目链接 http://codeforces.com/gym/101102/problem/C problem description Judge Bahosain was bored at ACM ...

随机推荐

  1. HTML5 学习06——Geolocation(地理定位)

    HTML5 Geolocation(地理定位) HTML5 Geolocation API 用于获得用户的地理位置. 鉴于该特性可能侵犯用户的隐私,除非用户同意,否则用户位置信息是不可用的. HTML ...

  2. 【小程序】小程序开发自定义组件的步骤>>>>>>>>>小程序开发过程中报错:jsEnginScriptError

    报错:jsEnginScriptError VM6342: jsEnginScriptError Component is not found in path "component/spac ...

  3. Django 数据表更改

    Django 数据表更改 « Django 开发内容管理系统(第四天) Django 后台 » 我们设计数据库的时候,早期设计完后,后期会发现不完善,要对数据表进行更改,这时候就要用到本节的知识. D ...

  4. Nginx配置,413 Request Entity Too Large错误解决

    今天有同事找我,说图片上传之后,不知道去哪里了.分析了一下问题,找到原因之后做了处理,这里简要记录一下. 问题原因: 1.首先后台log并无错误信息: 2.捡查了一下浏览器,发现network中有报错 ...

  5. 【转】Go Interface 源码剖析

    源网址:http://legendtkl.com/2017/07/01/golang-interface-implement/ 0.引言 在上一篇文章 <深入理解 Go Interface> ...

  6. coon's patch

    作者:桂. 时间:2018-05-23  06:11:54 链接:https://www.cnblogs.com/xingshansi/p/9070761.html 前言 早晨突然想到计算机模型的各种 ...

  7. 很烦人的maven和gradle的jar缓存

    1. 起因 a. 最近在学习大数据相关东西,自然就少不免去操作linux系统,更别说不敲命令 b. 然而那个配置软件时,很经常使用ln -s为一个软件目录(带着版本或者其他信息的长命名)创建别名(软连 ...

  8. java设计模式三种工厂模式简单介绍

    一.简单工厂模式 概述:简单工厂模式的创建意图就是,把对类的创建初始化全都交给一个工厂来执行,而用户不需要去关心创建的过程是什么样的,只用告诉工厂我想要什么就行了.而这种方法的缺点也很明显,违背了设计 ...

  9. [k8s] flexvolume workflow

  10. 每天学习一个Linux命令-目录

    在工作中总会零零散散使用到各种Linux命令,从今天开始详细的学习一下linux常用命令,坚持每天一个命令,学习的主要参考资料为: 1.竹子-博客(https://www.cnblogs.com/pe ...