A.2176

给一个字符串s,问距离为D的字母对是否存在相同。

模拟。

#include<bits/stdc++.h>
using namespace std; int main()
{
string s,b;
while(cin>>s)
{
if(s[]=='*')break;
int flag=;
map<string,int>ma;
for(int jump=;jump<s.size();jump++)
{
ma.clear();
for(int L=;L+jump<s.size();L++)
{
b.clear();
b+=s[L];
b+=s[L+jump];
if(ma[b]==)ma[b]=;
else
{
flag=;
break;
}
}
if(flag==)break;
}
if(flag)cout<<s<<" is surprising.\n";
else cout<<s<<" is NOT surprising.\n";
}
return ;
}

A.cpp

B.4694

给两堆糖果,每次从多的那堆拿gcd(a,b)个糖果,lemon先拿,问最后俩人糖果数。

模拟。

#include<bits/stdc++.h>
using namespace std;
int main()
{
int a,b;
while(cin>>a>>b,a||b)
{
int le=,yu=,sum=;
while(a||b)
{
if(sum%)le+=__gcd(a,b);
else yu+=__gcd(a,b);
if(a>b)a-=__gcd(a,b);
else b-=__gcd(a,b);
sum++;
if(a==||b==)
{
if(sum%)le+=a+b;
else yu+=a+b;
break;
}
}
cout<<le<<" "<<yu<<endl;
}
return ;
}

B.cpp

C.5259

给若干多项式和一个x,问多项式值最大和按值分组输出相同值最多的个数。

模拟。

#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll mul(ll a, ll b,int x)
{
if(b == ) return a; while(b--) a*= x;
return a;
}
int main()
{
int t; cin >> t;
while(t--)
{
map<ll,int> mp;
ll n, x; cin >> n >> x;
int maxx = -;
while(n--)
{
ll k,sum = ; cin >> k;
while(k--)
{
ll a, b; cin >> a >> b;
sum += mul(a,b,x);
}
mp[sum]++;
maxx = max(maxx,mp[sum]);
}
map<ll,int>::reverse_iterator it=mp.rbegin();
cout << it->first << " " << maxx << endl;
}
return ;
}

C.cpp

D.5265

给一个围棋谱,问黑棋还需要下在哪才能全围住白棋。

广搜。

#include<bits/stdc++.h>
using namespace std;
char a[][];
int dtx[]={,,,-};
int dty[]={,-,,};
int check(int i,int j)
{
for(int z=;z<;z++)
{
int I=i+dtx[z],J=j+dty[z];
if(I>=&&I<&&J>=&&J<)
{
if(a[I][J]=='W')
return ;
}
}
return ;
}
int main()
{
while(gets(a[])!=NULL)
{
for(int i=;i<;i++)
gets(a[i]);
int sum=;
for(int i=;i<;i++)
for(int j=;j<;j++)
{
if(a[i][j]=='.')
if(check(i,j))
cout<<i+<<" "<<j+<<endl,sum++;
}
if(sum==)cout<<"YuYu Wins!\n";
}
return ;
}

D.cpp

E.5260

给一个1-n的序列,问全排列连接起来第x个数字是几。

模拟。

#include <bits/stdc++.h>
using namespace std;
int s[];
int main()
{
int n,x,a[],b[],i,z,s1,flag,s2,k;
while(~scanf("%d%d",&n,&x))
{
s1=n;flag=;s2=;k=;
for(i=;i<=n;i++)
{
scanf("%d",&z);
a[i]=b[i]=z;
}
sort(a+,a+n+);
for(i=;i<=n;i++)
s1*=i;
sort(a,a+n);
do
{
for(i=;i<=n;i++)
{
if(a[i]!=b[i]) break;
}
if(i>n) flag=;
if(!flag) s2++;
for(i=;i<=n;i++)
s[k++]=a[i];
}while(next_permutation(a+,a+n+));
x+=s2*n;
x%=s1;
if(x!=) x--;
printf("%d\n",s[x]);
}
return ;
}

E.cpp

F.4702

给币值为1,3,5,7,9,13的硬币的个数和糖果的价格g,问最少需要多少枚硬币组成g。

背包。

#include<iostream>
#include<stdio.h>
#include<math.h>
using namespace std;
int dp[];
const int LIM=1e9;
int main()
{
int w[]={,,,,,};
int v[];
int t=,g;
while(t!=)
{
int ans=;
t=;
for(int i=;i<;i++)
{
cin>>v[i];
if(v[i]==)t++;
}
cin>>g;
if(g==)
if(t==)
break;
for(int i=;i<=g;i++)
dp[i]=LIM;
for(int i=;i<;i++)
for(int j=;j<=v[i];j++)
for(int k=g;k>=w[i];k--)
dp[k]=min(dp[k-w[i]]+,dp[k]);
if(dp[g]==LIM)cout<<"impossible"<<endl;
else cout<<dp[g]<<endl;
}
return ;
}

F.cpp

G.3331

给一个2n*2n的网格图,以中心为原点画一个直径为2n-1的圆,问圆周线穿过了多少个格子。

思维。

#include<bits/stdc++.h>
using namespace std;
int arr[];
int main()
{
int n;
arr[]=;
for(int i=;i<=;i++){
arr[i]=arr[i-]+;
}
while(cin>>n&&n!=){
cout << arr[n] <<endl;
}
return ;
}

G.cpp

H.4671

给n个数,求前M大并按小到大输出。

只需要记录前M个。

#include<bits/stdc++.h>
using namespace std;
int get() {
int r=;
char c;
while(c=getchar(),!(c>=''&&c<=''));
r = c-'';
while(c=getchar(),c>=''&&c<='')
r = (r*)+c-'';
return r;
}
int main()
{
int n,m,x,b[],len=;
n=get();
m=get();
for(int i=;i<=n;i++)
{
x=get();
if(len<m)b[len++]=x;
else
for(int j=;j<m;j++)
if(b[j]<x)
swap(b[j],x);
}
sort(b,b+m);
for(int i=;i<m;i++)
{
if(i!=)printf(" ");
printf("%d",b[i]);
}
putchar('\n');
return ;
}

H.cpp

I.4959

给n个数,问能否选若干数使和=k。

深搜。

#include<bits/stdc++.h>
using namespace std;
int n,a[],i,k;
bool dfs(int i,int sum)
{
if(i==n)
{
if(sum==k)return ;
return ;
}
if(dfs(i+,sum))return ;
if(dfs(i+,sum+a[i]))return ;
return ;
}
int main()
{
while(cin>>n>>k)
{
for(i=;i<n;i++)cin>>a[i];
if(dfs(,))printf("Yes\n");
else printf("No\n");
}
return ;
}

I.cpp

J.4374

n个特工,密钥总量为k(编号为0到k-1),以及每个特工所带的m个密钥,求是否每3个特工的密钥都可以解密文件。

模拟。

#include<bits/stdc++.h>
using namespace std;
int n,m,k;
int check(int a[])
{ for(int i=;i<m;i++)
if(a[i]==)
return ;
return ;
}
int main()
{
while(cin>>n>>m>>k)
{ vector<int> v[];
for(int i=;i<n;i++)
{ int x;
for(int j=;j<k;j++)
{cin>>x;
v[i].push_back(x);}
}
int flag=;
for(int i=;i<n;i++)
{ for(int j=i+;j<n;j++)
{for(int z=j+;z<n;z++)
{ int a[]={};
for(int t=;t<k;t++)
{ a[v[i][t]]=;
a[v[j][t]]=;
a[v[z][t]]=;
}
if(!check(a))flag=;
}
}
}
if(flag)cout<<"YES\n";
else cout<<"NO\n";
}
}

J.cpp

集训队日常训练20180513-DIV2的更多相关文章

  1. 集训队日常训练20181117 DIV2

    大佬们一顿操作猛如虎,拼命AC强啊 4262: 区间异或  Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByteTotal ...

  2. 集训队日常训练20181124 DIV2

    急急忙忙要出去比赛就拉了一场有点sb的题目 5202: 网络寻路  时间限制(普通/Java):1000MS/3000MS     内存限制:65536KByte总提交: 15            ...

  3. 集训队日常训练20181110 DIV2 题解及AC代码

    4375: 孪生素数  Time Limit(Common/Java):1000MS/3000MS     Memory Limit:65536KByteTotal Submit: 324       ...

  4. 集训队日常训练20181201 C 1003 : 种类数

    时间限制(普通/Java):2000MS/6000MS     内存限制:65536KByte总提交: 8            测试通过:5 描述 一共有 n个数,第 i 个数是 xi ,其中xi  ...

  5. 集训队日常训练20181201 E 1005 : 小蝌蚪

    时间限制(普通/Java):500MS/1500MS     内存限制:65536KByte总提交: 25            测试通过:5 描述 有 n 个装着小蝌蚪的水缸排成一排,你拥有一个无限 ...

  6. 集训队日常训练20180525-DIV2

    A.2295 求有多少素数对和等于n. 暴力. #include <bits/stdc++.h> using namespace std; int ss(int n) { ,a=sqrt( ...

  7. 集训队日常训练20180525-DIV1

    A.2805 N*M的图,每次浇水(X1,Y1)-(X2,Y2)围成的矩形,问最后有多少点被浇水了. 暴力. #include<bits/stdc++.h> using namespace ...

  8. 集训队日常训练20180518-DIV2

    A.3232 n个物品,换取要花积分,问刚好花完积分能换最大多少价值的物品. 多重背包. #include <bits/stdc++.h> using namespace std; ]; ...

  9. 集训队日常训练20180518-DIV1

    A.3583 n根木棍是否能分成相等两堆. 背包dp,首先求和sum,如果为偶数就说明不行,否则考虑做一个sum/2大小的背包. #include<bits/stdc++.h> using ...

  10. 集训队日常训练20180513-DIV1

    A.3132 给一个有向图,问能否从任意点出发都能进入一个环中. 深搜. #include<bits/stdc++.h> using namespace std; ; vector< ...

随机推荐

  1. 洛谷P5338 [TJOI2019]甲苯先生的滚榜

    原题链接洛谷P5338 [TJOI2019]甲苯先生的滚榜 题目描述 甲苯先生在制作一个online judge,他发现做比赛的人们很关心自己的排名(显而易见),在acm赛制的比赛中,如果通过题目数量 ...

  2. Canavs初学

    <canvas id="canvas" style="border:1px solid #f00;"></canvas> 公用js: v ...

  3. android Serializable 和 Parcelable 区别

      android 中自定义的对象序列化的问题有两个选择一个是Parcelable,另外一个是Serializable. 一 序列化原因: 1.永久性保存对象,保存对象的字节序列到本地文件中:2.通过 ...

  4. WCF加密操作(包括证书和证书+帐号密码)

    WCF作为.net三大组件之一,伟大之处不用多说,但是其加密配置对于我这样的萌新来说还是颇有难度,因此将几天来的研究成果共享出来,与各位共勉~ 首先声明我的开发环境,Win10创意者更新 + Visu ...

  5. 2016 CCPC网络选拔赛 部分题解

    HDU 5832 - A water problem 题意:有两颗星球,一年的长度分别为37天和173天.问第n天时它们是否为新年的第一天. 思路:显然  n 同时被37和173整除时,两种历法都在新 ...

  6. JavaScript事件(随笔)

    1. Javascript事件介绍 JavaScript中的事件和现实生活中的事件类似,现实生活中发生的一些事情,例如:交通事件,当这些事情发生时,我们需要提供处理方案: 在JavaScript中事件 ...

  7. Netty ByteBuf泄露定位修改。

    1. ByteBuf 2. 问题描述 日志记录中报堆外内存溢出. 3. 问题定位及修改 Netty提供了ByteBuf泄露的检测机制. JVM启动参数中添加: -Dio.netty.leakDetec ...

  8. dd- Linux必学的60个命令

    1.作用 dd命令用来复制文件,并根据参数将数据转换和格式化. 2.格式 dd [options] 3.[opitions]主要参数 bs=字节:强迫 ibs=<字节>及obs=<字 ...

  9. Spring Security Web应用入门环境搭建

    在使用Spring Security配置Web应用之前,首先要准备一个基于Maven的Spring框架创建的Web应用(Spring MVC不是必须的),本文的内容都是基于这个前提下的. pom.xm ...

  10. 新浪新闻API

    新浪新闻API ustcmio 关注 2017.01.15 20:44* 字数 536 阅读 2479评论 2喜欢 7 新浪新闻的API:1.访问手机新浪网https://sina.cn/?from= ...