Pinely Round 1 (Div. 1 + Div. 2) A B C
admin
2024-02-05 10:43:17
0

文章目录

  • 一、A - Two Permutations
  • 二、B - Elimination of a Ring
  • 三、C - Set Construction
  • 四、D - Carry Bit
  • 总结


一、A - Two Permutations

  • 思路: 只要给这个排列最少留下两个位置,就可以,也就是说n - (a + b) >= 2,同时注意 a == n并且b == n,还有n == 1的情况
  • 代码:
#include 
#define ios ios::sync_with_stdio(0),cin.tie(0)
#define fi first
#define se second
#define pb push_back
#define PII pair
#define int long long
using namespace std;const int N = 2e5 + 100,M = N * 2,INF = 0x3f3f3f3f,mod = 1e9 + 7;
int n,m;void solve()
{int a,b;cin >> n >> a >> b;if(a + b <= n - 2 || n == 1) cout << "Yes" << endl;else cout << "No" << endl;
}signed main()
{ios; int T; cin >> T; while(T -- ) solve();return 0;
}

二、B - Elimination of a Ring

  • 思路: 只要不是一直类似abababab,的这种情况,答案就是n,但如果是这样的情况答案就是(n + 2) / 2,可以推一下
  • 代码:
#include 
#define ios ios::sync_with_stdio(0),cin.tie(0)
#define fi first
#define se second
#define pb push_back
#define PII pair
#define int long long
using namespace std;const int N = 2e5 + 100,M = N * 2,INF = 0x3f3f3f3f,mod = 1e9 + 7;
int n,m;
int a[N];
void solve()
{cin >> n;for(int i = 1;i <= n;i ++ ) cin >> a[i];if(n == 1) cout << "1" << endl;else{bool f = false;for(int i = 1;i <= n - 2;i ++ ){if(a[i] != a[i + 2]){f = true;break;}}if(f) cout << n << endl;else cout << (n + 2) / 2 << endl;}}signed main()
{ios; int T; cin >> T; while(T -- ) solve();return 0;
}

三、C - Set Construction

  • 思路: 看样例你会发现,这其实就是一个拓扑序列,样例就是 1 -> 4,2 -> 4,3 -> 4.2->1,跑一边拓扑序列,如果点 T 到点 U,有一条边,那 U 包含的序列就是 {U 并上 T},比如 T包含1,3此时U包含2,3,当遍历到U的时候就是U包含的点就是 {1,2,3},可以用set,也可以手动去重
  • 代码:
#include 
#define ios ios::sync_with_stdio(0),cin.tie(0)
#define fi first
#define se second
#define pb push_back
#define PII pair
#define int long long
using namespace std;const int N = 210,M = N * 2,INF = 0x3f3f3f3f,mod = 1e9 + 7;int n,m;
char a[N][N];
int res[N][110];
int d[N];
int w[N];void bfs()
{queue q;int cnt = 0;for(int i = 1;i <= n;i ++ )if(d[i] == 0){q.push(i);++cnt;res[i][cnt] = 1;w[i] = 1;}while(q.size()){int t = q.front();q.pop();for(int j = 1;j <= n;j ++ ){if(a[t][j] == '1'){d[j]--;for(int k = 1;k <= n;k ++ )if(res[t][k] == 1 && res[j][k] != 1){w[j]++;res[j][k] = 1;}if(d[j] == 0){++cnt;w[j]++;q.push(j);res[j][cnt] = 1;}}}}
}
void solve()
{cin >> n;for(int i = 1;i <= n;i ++ )for(int j = 1;j <= n;j ++ ){cin >> a[i][j];if(a[i][j] == '1'){d[j]++;}}bfs();for(int i = 1;i <= n;i ++ ){cout << w[i] << ' ';for(int j = 1;j <= n;j ++ )if(res[i][j] == 1)cout << j << ' ';cout << endl;}for(int i = 1;i <= n;i ++ ){w[i] = 0;for(int j = 1;j <= n;j ++ )res[i][j] = 0;}}signed main()
{ios; int T; cin >> T; while(T -- ) solve();return 0;
}

四、D - Carry Bit

  • 大佬讲解

总结

D不会,好像自己这种算计数的大部分都不会,得加强一下练习了

相关内容

热门资讯

银行间主要利率债收益率快速下行 银行间主要利率债收益率快速下行,10年期国开债“26国开05”收益率下行1.1bp报1.7650%,...
膨胀面包节落地海口万象城 以特... 6月26日—28日,全国超高人气烘焙IP“膨胀面包节”首次登陆海南,在海口万象城正式拉开商场四周年庆...
原创 被... 灶台上的汤锅正翻滚着热气,咕嘟咕嘟地冒泡,像是把一天的疲惫都煮进了烟火气里。李阿姨站在灶边,随手在围...
今日十大热股:AI、芯片及显示... 上周五(6月26日)A股三大指数集体大幅下跌,上证指数跌2.26%,深证成指跌3.44%,创业板指跌...
原创 6... 6月29号这天,黄金原料大盘价直接蹦回890块一克,单日涨了12块8毛3,涨幅1.46%。 前几天还...
漩涡中的东鹏饮料:辟谣“创始人... 红星资本局6月28日消息,凭借“累了,困了,喝东鹏特饮!”广告语深入人心的东鹏饮料(605499.S...
首开股份董事长李岩辞职 在任近... 运营商财经网 地产频道 章少霞/文 近日,根据首开股份发布的官方公告,公司董事长李岩因工作调整,正式...
突然“变脸”!《富爸爸穷爸爸》... 知名投资者、《富爸爸穷爸爸》作者罗伯特·清崎(Robert Kiyosaki)于6月25日在社交平台...
透瘤方遇到纳米科技:百年智慧驱... 在肿瘤治疗的漫长探索中,一个根本性的难题始终存在:如何将足够剂量的有效成分,精准送达病灶深处,同时最...
36氪首发 | 「CAYE咖爷... 作者 | 钟艺璇 36氪获悉,商用全自动咖啡机品牌「CAYE咖爷科技」已完成近4亿元B轮融资,本轮融...
直击链博会丨更新、更智、链味更... 中国商报(记者 冉隆楠 文/图)6月26日,第四届中国国际供应链促进博览会(以下简称链博会)在北京闭...
【IPO追踪】散户热捧机构冷场... 6月29日,白鸽在线(02672.HK)正式登陆港交所主板,成为今年港股保险科技赛道的新晋上市标的。...
泰信基金持仓深度分析:锂电上游... 泰信基金持仓深度分析:锂电上游集中配置背后的投资信仰 前十大重仓股占比突破83%,单只个股逼近10%...
这块“金字招牌”不一般,值得上... 来源:滚动播报 (来源:上观新闻) 今年“五五购物节”以来,“上海定制”成为高频词: “开局起步‘...
三条高性能碳纤维生产线集中投产   新华社北京6月28日电(记者赵怡宁、王优玲)28日,中国建材三条高性能碳纤维生产线在中复神鹰连云...
从“尝鲜”到“长红” 解码“首... 今年,上海发布“首发上海”4.0版政策,首次明确支持打造“首发经济”集聚区、建设首发中心、发展品牌孵...
原创 中... 在全球复杂多变的地缘政治背景下,中国近期在稀土和关键金属领域的一系列举动引发了广泛关注与讨论。尤其是...
净值暴涨!又一“老登基金”,“... 关注投资家,⭐,您会收到最新推送 作者 | 锐眼哥 来源 | 财经锐眼 当下的A股行情,可谓极致割裂...
许家印18亿豪宅被流浪汉占领!... 来源 |凤凰网风财讯 近日,据英国卫报报道,以许家印前妻丁玉梅名义持有的英国伦敦海德公园一栋价值18...