A. Plus One on the Subset
B. Make AP
C. Division by Two and Permutation
D. Palindromes Coloring
E. Masha-forgetful
F. Interacdive Problem
G. MinOr Tree

就是最小值逐步增加到最大值的过程。

int main()
{int t;scanf("%d", &t);for(int _ = 1;_ <= t;_ ++){int n, mi = 1e9, ma = 0, x;scanf("%d", &n);while(n --) scanf("%d", &x), mi = min(mi, x), ma = max(ma, x);cout<<ma-mi<<endl;}return 0;
}

暴力枚举吧。

int main()
{int t;scanf("%d", &t);for(int _ = 1;_ <= t;_ ++){int a, b, c;scanf("%d%d%d", &a, &b, &c);if((a+c&1) == 0 && (a+c>>1)%b == 0) P(1);else if(2*b > c && (2*b-c)%a == 0) P(1);else if(2*b > a && (2*b-a)%c == 0) P(1);else P(0);}return 0;
}

一颗二叉树,贪心从上往下,写麻烦了,下面有简单的。哎

// 额,很难看。。。。
int main()
{int t;scanf("%d", &t);for(int _ = 1;_ <= t;_ ++){int n;scanf("%d", &n);for(int i = 0;i <= n;i ++) num[i] = 0;for(int i = 1;i <= n;i ++){int x;scanf("%d", &x);while(x > n) x >>= 1;num[x] ++;}for(int i = n;i >= 1;i --){if(!num[i]){for(int j = i+1;j <= n;j ++)if(num[j] > 1){int t = j;while(t > i) t >>= 1;if(t == i){num[j] --, num[i] = 1;break;}}if(!num[i]){num[0] = 1;break;}}}P(!num[0]);}return 0;
}// 简化的。
#define P(x) puts((x)?Y1:N1)
#define Y1 "YES"
#define N1 "NO"
using namespace std;
typedef long long LL;
typedef pair<int,int> PII;
const int N = 1e6+10;int num[N];
bool dis[N];int main()
{int t;scanf("%d", &t);for(int _ = 1;_ <= t;_ ++){int n;scanf("%d", &n);for(int i = 0;i <= n;i ++) dis[i] = 0;for(int i = 1;i <= n;i ++){scanf("%d", num+i);while(num[i] > n) num[i] >>= 1;}           sort(num+1, num+n+1);for(int i = n;i >= 1;i --){while(num[i] && dis[num[i]]) num[i] >>= 1;dis[num[i]] = 1;if(!num[i]) i = 0; }P(!dis[0]);}return 0;
}

直接分配,

int num[26];
char c[N];int main()
{int t;scanf("%d", &t);for(int _ = 1;_ <= t;_ ++){int n, k;scanf("%d%d%s", &n, &k, c);for(int i = 0;i < 26;i ++) num[i] = 0;for(int i = 0;c[i];i ++) num[c[i]-'a'] ++;int l = 0, r = 0;for(int i = 0;i < 26;i ++) l += num[i]>>1, r += num[i]&1;r += (l%k)*2; // 这句要加上。 l = l/k*2; if(r >= k) l++;printf("%d\n", l);}return 0;
}

不要求最小数目那就可以把 > 3的段 分成 2*x + 3的形式。
 先dp一下看可不可以,可以就直接搜索

bool dis[N];
int num[1401];
PII p[1401];
string c;int s(string c){int x = 0;for(auto v:c) x = x*11 + (v-'0'+1); return x;} // 映射成12进制的数 001 != 01 void dfs(int i, int x)
{int t = 0, len = i + 1;if(i == 1 || i == 2)                        printf("%d\n", x+1);else if(dis[i-2]&&num[s(c.substr(i-1, 2))]) dfs(i-2, x+1), len = 2;else                                        dfs(i-3, x+1), len = 3;t = s(c.substr(i-len+1, len));printf("%d %d %d\n", p[t].first, p[t].second, num[t]);return ;
}
void p1(){puts("-1");return ;}int main()
{int t;scanf("%d", &t);for(int _ = 1;_ <= t;_ ++){int n, k;scanf("%d%d", &n, &k);for(int j = 1;j <= n;j ++){cin>>c;for(int l = 2, x;l <= 3;l ++) for(int i = 0;i <= k-l;i ++)x = s(c.substr(i, l)), num[x] = j, p[x] = {i+1, i+l};}cin>>c;dis[1] = num[s(c.substr(0, 2))]; dis[2] = num[s(c.substr(0, 3))];for(int i = 3;i < k;i ++)  // dp 一下  dis[i] = (dis[i-2]&&num[s(c.substr(i-1, 2))])|(dis[i-3]&&num[s(c.substr(i-2, 3))]);dis[k-1] ? dfs(k-1, 0): p1();  // p1 就是为了可以用 ? : 语句 for(int x = 0;x <= 1400;x ++) num[x] = dis[x] = 0;}return 0;
}

模拟,想成一个线段,每次可以把中点放到整除的位置从而把线段减半,然后注意要把mid+1放到整除的位置,因为最后mid = l

int main()
{int n;scanf("%d", &n);int l = 1, r = n-1, t = r-mid; while(l < r){int x;cout<<"+ "<<t<<endl;fflush(stdout);   scanf("%d", &x);l += t, r += t;x == r/n ? (l = r/n*n, t = (x+1)*n-mid-1) : (r = r/n*n-1, t = r-mid); }cout<<"! "<<l<<endl; return 0;
}

看答案的,贪心来算。哎

const int N = 1e6+10;vector<PII>G[N];
bool dis[N];
int ans = 0, t = 0;
void dfs(int u)
{dis[u] = 1;for(auto x : G[u])if(!dis[x.first] && (ans|x.second) == ans)dfs(x.first);return ;
}void add(){int u, v, w;scanf("%d%d%d", &u, &v, &w);G[u].push_back({v, w});G[v].push_back({u, w});}
void solve()
{int n, m;scanf("%d%d", &n, &m);for(int i = 1;i <= n;i ++) G[i].clear();while(m --)add();t = 1<<29, ans = (1<<30)-1;while(t){ans -= t;dfs(1);for(int i = 2;i <= n;i ++) dis[1] &= dis[i];if(!dis[1]) ans |= t; memset(dis, 0, n+3);t >>= 1;}printf("%d\n", ans);return ;
}
int main()
{int t;scanf("%d", &t);while(t --) solve();return 0;
}

Codeforces Round #764 (Div. 3)相关推荐

  1. Codeforces Round #764 (Div. 3)部分题解

    本篇题解只是记录我的做题过程代码,不提供最优解 (另外这里所有的时间复杂度都只分析单个样例,不算ttt的时间复杂度) A 点击此处查看对应的题目. 本题模拟 本题只要读懂题意,其实就可以很快知道答案是 ...

  2. Codeforces Round #764 (Div. 3)(A~G)

    考试结束rua!开始写题解. 这场打完后明显感觉到自己水平下降了很多,考试结束后该回回手了. 赛中过了A~D,F,E题题目读错了干想了一个多小时.....给整麻了 A. Plus One on the ...

  3. 第一次打CF的感受(附A-C题题解) -Codeforces Round #764 (Div. 3)

    目录 A题-在子集上加一 B题-制作AP C题- 除以2和排列 个人感受 A题-在子集上加一 题目 Polycarp得到了一个整数数组a[1-n]作为礼物.现在,他希望执行一定数量的操作(可能为零), ...

  4. Codeforces Round #764 (Div. 3) 1624D Palindromes Coloring

    题目描述(传送门) 题目翻译: 你有一个由小写英文字母组成的字符串s. 你可以为一些字符上色(用数字1~k来表示不同的颜色).但没有要求所有的字符都必须上色.但是对于每种颜色,必须至少有一个字符是该颜 ...

  5. Codeforces Round #506 (Div. 3)

    Codeforces Round #506 (Div. 3) 实习期间事不多,对div3 面向题解和数据编程了一波 A. Many Equal Substrings 题目链接 A题就是找后缀和前缀重合 ...

  6. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  7. 构造 Codeforces Round #302 (Div. 2) B Sea and Islands

    题目传送门 1 /* 2 题意:在n^n的海洋里是否有k块陆地 3 构造算法:按奇偶性来判断,k小于等于所有点数的一半,交叉输出L/S 4 输出完k个L后,之后全部输出S:) 5 5 10 的例子可以 ...

  8. Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解(每日训练 Day.16 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #696 (Div. 2) (A ~ E)超高质量题解 比赛链接:h ...

  9. Codeforces Round #712 Div.2(A ~ F) 超高质量题解(每日训练 Day.15 )

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #712 Div.2(A ~ F) 题解 比赛链接:https:// ...

最新文章

  1. [Usaco2009 Feb]Revamping Trails 道路升级
  2. leetcode算法题--Minimum Depth of Binary Tree
  3. [CF544D]Destroying Roads_最短路_bfs
  4. 下列关于物理层设备的叙述中,错误的是( )
  5. 收集53个程序员段子
  6. LeetCode 2075. 解码斜向换位密码(模拟)
  7. 【转载】Python线程、进程和协程详解
  8. 数据:本周DOT将解锁476.59万枚 上周共质押171.2万枚
  9. pycharm调节字体大小
  10. 影视】100种说爱你的方式~
  11. 快节奏多人在线游戏网络入门系列教程(4):爆头!滞后补偿
  12. 直接收藏-超级好用的国内色彩搭配网站
  13. 计算机图形学——Liang-Barsky算法
  14. mysql io瓶颈_服务器IO瓶颈对MySQL性能的影响
  15. Web前端-HTML学习笔记一
  16. 银河麒麟V10桌面系统卡于光标处无法进入系统解决方法
  17. nacos和eruka的区别
  18. 计算机文化基础期末考试复习
  19. Win11怎么打开3D查看器
  20. 工作中需要将多张CAD图纸共同转换成DWF格式如何操作?

热门文章

  1. 程序员为啥365天都背电脑包?这答案我服!
  2. Google 机器学习应用的43条经验法则
  3. android什么是回调,Android中的回调是什么?
  4. idea2020.2.2怎么创建web项目_创建Vue3.0的项目
  5. sql语句ding_mybatis plus 写sql语句
  6. 摇滚java游戏_java 集合类
  7. 实现图片打乱_疫情过后,是否打乱了你前进的脚步?面对现状,你将如何开展新的征程?...
  8. 单体 soa 微服务 区别_漫谈何时从单体架构迁移到微服务?
  9. leetcode-445. 两数相加 II
  10. Excel学习使用教程