地址:http://codeforces.com/contest/1312

    题意:给出一个边数为n的等边多边形,问是否可以变成m的等边多边形。条件是同一个中心,共用原顶点。

    解析:直接n%m==0即可,这样就是平分了。签到题没得说了。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<map>
using namespace std;
typedef long long ll;
const int maxn=1e4;
int pr[maxn];
int find(int x)
{
if(x!=pr[x])
return pr[x]=find(pr[x]);
return x;
}
void join(int x1,int x2)
{
int f1=find(x1),f2=find(x2);
if(f1!=f2)
{
pr[f1]=f2;
}
return ;
}
int main()
{
int t;
cin>>t;
while(t--)
{
int n,m;
cin>>n>>m;
if(n%m==)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}

    题意:把给定数组任意排列,保证i<j时,j-a[j]!=i-a[i]。输出任意一组答案。

    解析:sort一下从大到小排列即可。看数据的话,暴力也是可以的。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<map>
using namespace std;
typedef long long ll;
int a[];
int main()
{
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
for(int i=;i<=n;i++)
cin>>a[i];
while()
{
int ok=;
for(int i=;i<=n;i++)
{
for(int j=i+;j<=n;j++)
{
if((j-a[j])==(i-a[i]))
{
ok=;break;
}
}
if(ok)
break;
}
if(!ok)
break;
for(int i=;i<=n;i++)
{
for(int j=i+;j<=n;j++)
{
if((j-a[j])==(i-a[i]))
{
swap(a[i],a[j]);
}
}
}
}
for(int i=;i<n;i++)
cout<<a[i]<<" ";
cout<<a[n]<<endl;
} }

    题意:给你一个个数为n的数组a[],判断是否可以由相同大小的全0数组v[]变换而来。

         变换规则:

            1.在第i次操作时,你可以给数组v任意位置的值加上k^i

            2.在第i次什么也不做。

    解析:这其实就是一个进制的题。对于任意一个a【i】假设k进制对其有n位:a[i]= x0* k^0 +x1* k^1 +x2* k^2 +……+x(n-1)* k^n-1

       而这个题对于k^i的i,是不断递增的,即每个i只能出现一次。所以我们只要知道每个k^i的系数,大于1,就是NO了。

       举个例子:二进制,k=2  

                  5  6

       5的二进制表示为101,2为110,101

                      110    可以看出,2^2那里出现了两次,肯定不服题意了。

       这里用vis[]来记录各个k^i的出现次数,记住vis是与实际转化的k进制数方向是相反的。vis[]+=a[i]%k,这个a[i]%k,就是系数,即次数。最后注意一下vis[]开的大些

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<map>
using namespace std;
typedef long long ll;
const int maxn=;
const int maxn2=;
ll a[maxn];
int vis[maxn2];
int t;
int main()
{
scanf("%d",&t);
while(t--)
{
int n,k;
scanf("%d%d",&n,&k);
for(int i=;i<n;i++)
scanf("%lld",&a[i]);
memset(vis,,sizeof(vis));
int ok=;
for(int i=;i<n;i++)
{
int tot=;
while(a[i])
{
tot++;
vis[tot]+=a[i]%k;
a[i]=a[i]/k;
if(vis[tot]>)
{
ok=;break;
}
}
if(ok)
break;
}
if(!ok)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}

Educational Codeforces Round 83 (Rated for Div. 2)A--C的更多相关文章

  1. Educational Codeforces Round 83 (Rated for Div. 2)

    A. Two Regular Polygons 题意:给你一个 正n边形,问你能否以这个 n 的其中一些顶点组成一个 m边形, 思路 :如果 n % m == 0 ,就可 收获:边均分 B. Bogo ...

  2. Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship

    Problem   Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...

  3. Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems(动态规划+矩阵快速幂)

    Problem   Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems Time Limit: 3000 mSec P ...

  4. Educational Codeforces Round 43 (Rated for Div. 2)

    Educational Codeforces Round 43 (Rated for Div. 2) https://codeforces.com/contest/976 A #include< ...

  5. Educational Codeforces Round 35 (Rated for Div. 2)

    Educational Codeforces Round 35 (Rated for Div. 2) https://codeforces.com/contest/911 A 模拟 #include& ...

  6. Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings

    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings 题目连接: http://cod ...

  7. Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes

    Codeforces Educational Codeforces Round 44 (Rated for Div. 2) E. Pencils and Boxes 题目连接: http://code ...

  8. Educational Codeforces Round 63 (Rated for Div. 2) 题解

    Educational Codeforces Round 63 (Rated for Div. 2)题解 题目链接 A. Reverse a Substring 给出一个字符串,现在可以对这个字符串进 ...

  9. Educational Codeforces Round 39 (Rated for Div. 2) G

    Educational Codeforces Round 39 (Rated for Div. 2) G 题意: 给一个序列\(a_i(1 <= a_i <= 10^{9}),2 < ...

随机推荐

  1. EXAM-2018-8-3

    EXAM-2018-8-3 D H 喜闻乐见的水题 J lower_bound + upper_bound 一个可以查找第一个大于,另一个可查找第一个不小于. F 找规律+奇偶分析 偶数好找,就是奇数 ...

  2. IPC之——信号量集(多个信号量)

    如果两个进程不仅需要同步,还要保证先后执行顺序,就要用两个信号量(互斥锁)来解决 //栅栏模型:实现以下框架中的四个子进程 所有进程做完任务后 在一起执行下一次  #include <stdio ...

  3. mysql中in和exist的区别

    mysql中in和exists的区别 -- in写法select * from A where A.id in (select bid from  B ) and A.name in (select ...

  4. python数据类型:元组

    python数据类型:元组 python的元组与列表类似,但是元组的元素不能修改 元组使用小括号,列表使用大括号 元组创建简单,只需要在括号中添加元素,使用逗号隔开 创建元组: tup1 = (50, ...

  5. 利用Python进行图片发送与接收的两种方法---包含客户端和服务器端代码

    第一种方法 opencv.requests.flask 此方法比较耗费时间 600毫秒左右 客户端代码 #coding:utf-8 import cv2 import json import requ ...

  6. POJ-1811-Prime Test(pollard_rho模板,快速找最小素因子)

    题目传送门 sol:Pollard_Rho的模板题,刚看了Pollard_Rho和Miller_Rabin很多原理性的东西看不懂,只是记住了结论勉强能敲代码. Pollard_Rho #include ...

  7. JavaScript学习总结(八)正则表达式

    转自:http://segmentfault.com/a/1190000000699097 基本概念 正则表达式是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为“元字符”) ...

  8. JavaScript学习总结(七)Ajax和Http状态字

    转自:http://segmentfault.com/a/1190000000691919 Ajax及其工作原理 AJAX 是一种与服务器交换数据无需刷新网页的技术,最早由Google公司在谷歌地图里 ...

  9. absorb|state|

    ADJ-GRADED 极感兴趣的:专心的:全神贯注的If you are absorbed in something or someone, you are very interested in th ...

  10. LINQ之路 7:子查询、创建策略和数据转换(要点笔记)

    匿名类型 上面我们自己定义了类型TempProjectionItem来存放查询的结果.通过使用匿名类型,我们可以省去这种中间类型的定义,而由编译器来帮我们完成: select item.Origina ...