https://codeforces.com/contest/1228/problem/A

A. Distinct Digits

超级简单嘻嘻,给你一个l和r然后寻找一个数,这个数要满足的条件是它的每一位的数字不相同,找出满足要求的最小的那个数输出,没有找到就输出-1;

 #include<bits/stdc++.h>
using namespace std;
bool check(int n){
int vis[]={};
while(n){
if(!vis[n%]) vis[n%]=;
else return false;
n/=;
}
return true;
}
int main()
{
int l,r;
cin>>l>>r;
for(int i = l;i <=r;++i){
if(check(i)){
cout<<i<<endl;return ;
}
}
cout<<"-1"<<endl;
return ;
}

AC代码

https://codeforces.com/contest/1228/problem/B

B. Filling the Grid

也很简单,,自己读题没读清导致前面白wa了好几发。给一个n*m的grid,然后告诉你每一行每一列从边界处开始连续的黑块个数,然后求满足这个条件的有多少种情况,输出结果mod1e9+7。

然后要注意,如果没有方案数是输出0的。

因为h,w<=1e3,所以构建个二维数组就好了,在连续黑色块的位置标记1,后一位还有空位的话标-1,-1表示这个地方不能变黑,如果标1和-1重复了,那么方案数就是0,如果可以把这个基础的图构造出来的话,统计一下0的个数ans,输出2的ans次方就好了(因为0可填黑可填白)

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 1e9+;
int mp[][];
long long power(long long a,long long b)///a是底数,b是次幂
{
long long ans=;
for(;b!=;b>>=)
{
if(b&) ans=(long long)ans*a%mod;
a=(long long)a*a%mod;
}
return ans;
} int main()
{
int n,m;
cin>>n>>m;
for(int i=;i<=n;i++)
{
int a;cin>>a;
for(int j=;j<=a;j++)
{
mp[i][j]=;
}
mp[i][a+]=-;
}
int f=;
for(int i=;i<=m;i++)
{
int a;cin>>a;
for(int j=;j<=a;j++)
{
if(mp[j][i]==-) f=;
mp[j][i]=;
}
if(mp[a+][i]==) f=;
mp[a+][i]=-;
}
if(f==)
cout<<<<endl;
else
{
int ans=;
for(int i=;i<=n;i++)
for(int j=;j<=m;j++)
if(mp[i][j]==)
ans++;
cout<<power(,ans)<<endl;
}
}

AC代码

https://codeforces.com/contest/1230/problem/C

C. Primes and Multiplication

写这道题的时候疯狂挨骂emmm,lj好好反思。

根据题目定义把要求的东西展开,然后要用到的一个结论就是求1-n中质因子x的个数是求Σ(n/x^k)(k=1,2,3...)

还学到了个求质因子的方法? 害...不会的东西太多了

 #include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll mod = 1e9+;
ll sq(ll a,ll b){
ll cnt=;
while(b){
if(b&)cnt=cnt%mod*a%mod;
a=a*a%mod;
b>>=;
}
return cnt%mod;
}
vector<ll>s;
int main(){
ll ans= ,x,n;
cin>>x>>n;
for(ll i = ;i *i<= x;++i){
if(x%i==)s.push_back(i);
while(x%i==)x/=i;
}
s.push_back(x);
for(int i = ;i< s.size();++i){
if(s[i]==) continue;
ll sum=,temp=s[i],a=s[i];
while(temp<=n){
sum+=n/temp;
if(temp>n/a)break;
temp*=a;
} ans=ans*sq(a,sum)%mod;ans%=mod;
}
cout<<ans<<endl;
return ;
}

AC代码

https://codeforces.com/contest/1228/problem/D

D. Complete Tripartite

给n个点m条边,然后构造三个顶点集,其中任一顶点集内的顶点两两之间没有边,然后该顶点集的任一顶点都和不属于这个顶点集的所有点有边。

如果可以就输出每个顶点所属的集合,不可以就输出-1;

emmmmmm,然后按照题意写就好了,先全部放在集合1,然后和集合1有边的就去集合2,然后集合2内部有边的就放到集合3去,再检查集合内部有没有连接的边。

如果都没问题了之后再检查每个点是否和其他不属于它集合的点有边,那么就想办法检查一遍和她连接的点在另外两个集合的个数是不是 等于另外两个集合的顶点数

 #include<bits/stdc++.h>
using namespace std;
const int N = 1e5+;
vector<int>s[N];
int pre[N],cnt1=,cnt2=,cnt3=,temp1,temp2,temp3;
struct ac{
int x,y;
}a[];
int main()
{
int n,m;
cin>>n>>m;
for(int i = ;i <=n;++i)pre[i]=;cnt1=n;
for(int i = ;i <m;++i){
cin>>a[i].x>>a[i].y;
s[a[i].x].push_back(a[i].y);s[a[i].y].push_back(a[i].x);
} for(int i = ;i <= n; ++i){
if(s[i].size()<){cout<<"-1"<<endl;return ;}
for(int j = ;j < s[i].size();++j){
if(pre[i]==)
if(pre[s[i][j]]==)pre[s[i][j]]=,cnt1--,cnt2++;
}
}
for(int i = ;i <= n;++i){
for(int j = ;j <s[i].size();++j){
if(pre[i]==)
if(pre[s[i][j]]==)pre[s[i][j]]=,cnt2--,cnt3++;
}
}
if(cnt1==||cnt2==||cnt3==){
cout<<"-1"<<endl;return ;
} for(int i = ;i <=n;++i){
temp1=temp2=temp3=;
for(int j = ;j < s[i].size();++j){
if(pre[i]==pre[s[i][j]]){
cout<<"-1"<<endl;return ;
}
if(pre[i]==){
if(pre[s[i][j]]==)temp2++;
else if(pre[s[i][j]]==)temp3++;
}
else if(pre[i]==){
if(pre[s[i][j]]==)temp1++;
else if(pre[s[i][j]]==)temp3++;
}
else if(pre[i]==){
if(pre[s[i][j]]==)temp2++;
else if(pre[s[i][j]]==)temp1++;
}
}
if(pre[i]==){
if(temp2<cnt2||temp3<cnt3){
cout<<"-1"<<endl;return ;
}
}
else if(pre[i]==){
if(temp1<cnt1||temp3<cnt3){
cout<<"-1"<<endl;return ;
}
}
else if(pre[i]==){
if(temp2<cnt2||temp1<cnt1){
cout<<"-1"<<endl;return ;
}
}
}
for(int i = ;i <=n;++i)cout<<pre[i]<<" ";cout<<endl;
}

AC代码

emmmm我也不清楚为啥这个题这么暴力的写都能过。。可能这就是div3吧(真实(然而我写了很久

Codeforces Round #589 (Div. 2) (e、f没写)的更多相关文章

  1. Codeforces Round 212 Div 2 报告(以前没写完,现在也没心情补了,先就这样吧)

    A. Two Semiknights Meet 题目大意:有一个8x8的棋盘,上面放有两个骑士,骑士以“田字”的方式走.每个方格都被定义为good或者bad,问骑士能否在good的格子中相遇? 由于骑 ...

  2. Codeforces Round #589 (Div. 2)-E. Another Filling the Grid-容斥定理

    Codeforces Round #589 (Div. 2)-E. Another Filling the Grid-容斥定理 [Problem Description] 在\(n\times n\) ...

  3. Codeforces Round #573 (Div. 1) 差F

    Codeforces Round #573 (Div. 1) E 题意:二维平面上有 n 个点,你可以放至多 m 条直线使得 (0,0) 与每个点的连线至少与一条直线相交.求原点与所有直线的距离最小值 ...

  4. Codeforces Round #541 (Div. 2) (A~F)

    目录 Codeforces 1131 A.Sea Battle B.Draw! C.Birthday D.Gourmet choice(拓扑排序) E.String Multiplication(思路 ...

  5. Codeforces Round 589 (Div. 2) 题解

    Is that a kind of fetishism? No, he is objectively a god. 见识了一把 Mcdic 究竟出题有多神. (虽然感觉还是吹过头了) 开了场 Virt ...

  6. Codeforces Round #589 (Div. 2)

    目录 Contest Info Solutions A. Distinct Digits B. Filling the Grid C. Primes and Multiplication D. Com ...

  7. Codeforces Round #346 (Div. 2) E F

    因为很久没有个人认真做题了 昨天晚上开了场虚拟cf来锻炼个人手速 选的是第一次做cf的场 那时候7出3还被hack...之后也没补题 这次做的时候顺便回忆了一下以前比赛的时候是怎么想的 发现经验还是很 ...

  8. Codeforces Round #532 (Div. 2):F. Ivan and Burgers(贪心+异或基)

    F. Ivan and Burgers 题目链接:https://codeforces.com/contest/1100/problem/F 题意: 给出n个数,然后有多个询问,每次回答询问所给出的区 ...

  9. Codeforces Round #589 (Div. 2) D. Complete Tripartite(染色)

    链接: https://codeforces.com/contest/1228/problem/D 题意: You have a simple undirected graph consisting ...

随机推荐

  1. JavaWeb_(设计模式)单例模式

    菜鸟教程 传送门 单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 这种模式涉及到一个单一的类,该 ...

  2. Confluence备份,数据迁移

    一.Confluence的备份.恢复1)Confluence的备份 管理员账号登录Confluence,点击右上角的"一般配置"-"每日备份管理",如下图(默认 ...

  3. hdu 4763 看毛片(单纯next数组的应用--纯正O(n))

    因为需要负责队内的字符串题,开始刷,做到这道,开始想不出来,上网找题解, 然后就惊了,为什么你们这么暴力都可以过的啊,1e6啊,后来又想了下会做了 贴下代码 #include <iostream ...

  4. Java操作Redis数据

    Redis 是完全开源免费的,遵守BSD协议,先进的key - value持久化产品.它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map),列表(list) ...

  5. 学习曲线(learning curves)

    假定假设函数为一个二次函数,只是参数未定: 每给定一个样本大小,就能训练出对应的假设函数,从而利用这个假设函数可以计算出Jtrain(仍然在之前拿来训练的那些样本里面),然后将训练好的假设函数用在全部 ...

  6. jquery 使用on方法给元素绑定事件

    on方法在1.7版本中开始出现的,现在已经优先考虑on,并不是bind方法了. on( events [,selector] [,data] ,handler) event:为事件类型,可以有多个事件 ...

  7. 何为受控组件(controlled component)

    在 HTML 中,类似 , 和 这样的表单元素会维护自身的状态,并基于用户的输入来更新:当用户提交表单时,前面提到的元素的值将随表单一起被发送.但在 React 中会有些不同,包含表单元素的组件将会在 ...

  8. Kotlin 的函数定义和使用 (译文 转)

    Kotlin 的函数定义和使用 函数声明Kotlin 中的函数使用 fun 关键字声明 fun double(x: Int): Int {}函数用法调用函数使用传统的方法 val result = d ...

  9. Android如何使用Https与Nohttp框架使用

    什么是Https? HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全 ...

  10. 设置ubuntu14.04命令行启动

    编辑文件"/etc/default/grub",  把 GRUB_CMDLINE_LINUX_DEFAULT="quiet"  改成GRUB_CMDLINE_L ...