Codeforces Round #447 (Div. 2) B C 思维
来源:互联网 发布:php统计网站访问人数 编辑:程序博客网 时间:2024/06/04 00:58
好久没打cf。。感觉智商已经退化到了零点,随便找了一套div2补一补。。。。B题就卡住了
http://codeforces.com/contest/894/problem/B
B题意是给一个n*m的方格,往每个格子里填1或-1,有多少种填的方法使得每行每列乘积都等于k,k已知,-1或1
n,m范围很大
第一想法,推组合数??????
感觉毫无头绪。。。
纸上画画,发现当(n+m)是奇数时,k是-1时,方案数是0
好像一点用没有。。。。
很久之后,理性的打了一个表,看出了规律
除了(n+m)是奇数时,-1和1答案不同,其余都相同
并且结果是2^((n-1)*(m-1))
并不知道咋回事。。
#include<bits/stdc++.h>using namespace std;int book[100][100],k;long long n,m;//打表 int check(){for(int i=1;i<=n;i++){int temp=1;for(int j=1;j<=m;j++){temp*=book[i][j];}if(temp!=k)return 0;}for(int i=1;i<=m;i++){int temp=1;for(int j=1;j<=n;j++){temp*=book[j][i];}if(temp!=k)return 0;}return 1;}int ans;void dfs(int x,int y){if(y==m+1){y=1;x++;}if(x==n+1){ans+=check();return ;}book[x][y]=1;dfs(x,y+1);book[x][y]=-1;dfs(x,y+1); }void biao(){int i,j;for(n=1;n<=5;n++)for(m=1;m<=5;m++){cout<<n<<" "<<m<<" :";ans=0;k=1;dfs(1,1);cout<<ans<<" ";k=-1,ans=0;dfs(1,1);cout<<ans<<endl; }}//solve const int mo=1e9+7;long long poww(long long a,long long b){long long sum=1;while(b){if(b&1)sum=sum*a%mo;a=a*a%mo;b>>=1;}return sum;}int main(){cin>>n>>m>>k;long long ans=poww(2,n-1);ans=poww(ans,m-1);if(k==1)cout<<ans<<endl;else{if((n+m)&1)cout<<0<<endl;elsecout<<ans<<endl;}return 0;}
又看了下C
http://codeforces.com/contest/894/problem/C
题意是有一个原序列,你知道他的每一个子区间的gcd值的总集合,构造这个原序列
完全没思路
搜了下题解,感觉智商受到了侮辱。。
B:https://www.cnblogs.com/yi-ye-zhi-qiu/p/7868954.html
每一行每一列空格留空,其余n-1行m-1列任意放,每一个放的方法都对应了一个最后一行最后一列的放的方法
C:http://blog.csdn.net/hmc0411/article/details/78581318
先判断集合所有元素的gcd是否等于集合最小值,如果不等于,无论怎么构造,原序列的所有元素的gcd值肯定是没在集合里
至于等于的话,构造方法十分巧妙
每两个给定的集合的元素,中间插一个集合最小值
#include<bits/stdc++.h>using namespace std;int n,a[2000];int main(){cin>>n;for(int i=0;i<n;i++)cin>>a[i];sort(a,a+n);int temp=a[0];for(int i=1;i<n;i++)temp=__gcd(temp,a[i]);if(temp!=a[0]){cout<<-1<<endl;}else{cout<<n+n-1<<endl;for(int i=0;i<n;i++){cout<<a[i];if(i==n-1)cout<<endl;elsecout<<" "<<a[0]<<" ";}}return 0;}
阅读全文
0 0
- Codeforces Round #447 (Div. 2) B C 思维
- Codeforces Round #447 (Div. 2) B,C
- Codeforces Round #353 (Div. 2) C 思维
- Codeforces Round #366 (Div. 2) A 【水题】& B【博弈】 & C 【思维】
- Codeforces Round #368 (Div. 2) A(水题) B(枚举 思维) C(数论 勾股数)
- Codeforces Round #243 (Div. 2) B C
- Codeforces Round #266 (Div. 2) B & C
- Codeforces Round #258 (Div. 2) B C
- Codeforces Round #307 (Div. 2) B C
- Codeforces Round #407 (Div. 2) B+C!
- Codeforces Round #431 (Div. 2) B, C
- Codeforces Round #448 (Div. 2) B,C,
- Codeforces Round #449 (Div. 2) (B、C)
- Codeforces Round #296 (Div. 2) B(思维题)
- Codeforces Round #202 (Div. 2)(B)贪心,思维
- Codeforces Round #344 (Div. 2) B. Print Check【思维】
- Codeforces Round #352 (Div. 2)(B)思维
- Codeforces Aim Tech Round 3 (Div.2 )B.Checkpoints【思维】
- PlexCoin创始人获罪入狱
- Beginning Objective-C.pdf 英文原版 免费下载
- 遇到了http 400
- 法国批准通过区块链技术交易非上市证券
- Python自学之路第九步——用户输入和while循环
- Codeforces Round #447 (Div. 2) B C 思维
- 哈萨克斯坦新兴组织希望在当地发展区块链
- 俄罗斯最大银行在IBM区块链上试行资金转账
- 直布罗陀通过新法案,为区块链监管铺平道路
- 瑞银携手巴克莱、瑞信等大型银行机构推出实时以太坊平台
- CBOE比特币期货上市首日币价冲高企稳,美国迎来新一波加密货币ETF申请
- Redis高性能键值对数据库--学习01
- 俄罗斯副财长:比特币将合法,挖矿需接受监管
- LeetCode Exercise 13: Contains Duplicate III