首页 > TAG信息列表 > Cin

一百五十天一千题(DAY 1)

一百五十天一千题 (DAY 1) 目前总题数: 0 目前CF分数: 1325 T1: (ABC 268)C - Chinese Restaurant // 题解 const int N = 1e6 + 10; /* 模拟即可 但是纯暴力是N^2的 会TLE 考虑到要把 A[I] 移动到 p=I-1 需要操作 a[i] - p % N 或者 (a[i]-p+1)%N 或者 (a[i]-p-1)%N; 用一个东西储

31

1 #include <iostream> 2 #include <string> 3 4 using namespace std; 5 template <class T> 6 class CMyistream_iterator 7 { 8 private: 9 istream& in; 10 T value; 11 public: 12 CMyistream_iterator(istream& _in):i

区间交集

题目链接:区间交集 分析: 贪心 先将每个区间按左端点从小到大排序,同时用小根堆来维护区间右端点 对于若干区间的交集的长度为这些区间的右端点的最小值 - 这些区间的左端点的最大值 代码实现 #include <bits/extc++.h> #define rep(i, n) for (int i = 0; i < (n); ++i) using nam

C 栗酱的数列 kmp结论题 模运算移项差分

 链接:https://ac.nowcoder.com/acm/contest/27589/C来源:牛客网 题目描述 栗酱有一个长度为n的数列A,一个长度为m的数列B,现在询问A中有多少个长度为m的连续子序列A', 满足(a'1+b1)%k = (a'2+b2)%k = …… = (a'm + bm)%k。 输入描述: 第一行一个数T,表示有T

COMPFEST 14 - Preliminary Online Mirror (Unrated, ICPC Rules, Teams Preferred)

比赛链接: https://codeforces.com/contest/1725 A. Accumulation of Dominoes 题意: \(n * m\) 的矩阵,从左上角开始,将 1 到 \(n * m\) 的数,放到矩阵中,先放第一行,从左到右,然后第二行,以此类推。问相邻且数字差为 1 的格子有多少个。 思路: 答案就是 \((m - 1) * n\),特判一下只有一列的

B 数一数 kmp 字符串匹配数量之积

 链接:https://ac.nowcoder.com/acm/contest/27589/B来源:牛客网 题目描述 设 s,ts,ts,t 为两个字符串,定义 f(s,t)=tf(s,t) = tf(s,t)=t 的子串中,与 sss 相等的串的个数。如 f("ac","acacac")=3f("ac","acacac")=3f("ac","

1.关于输入

一、cin>> 用法1:输入一个数字或字符 #include <iostream>using namespace std;main (){int a,b;cin>>a>>b;cout<<a+b<<endl;} 用法2:接收一个字符串,遇“空格”、“TAB”、“回车”就结束 #include <iostream>using namespace std;main (){char a[20];cin>>a;cout&

博弈论 _ SG函数

定义 SG函数是指:在有向图中,对于每个节点x,设从 \(x\) 出发共有\(k\)条有向边(直接相连的边),分别达到节点\(y_1,y_2……y_k\), 定义\(SG(x)\)为\(x\)的后继节点的\(SG\)值构成的集合执行\(mex()\)运算后的值 \(mex():\)设集合S是一个非负整数集合,mex(S)就是求不属于S的最小非负整数。

034:goodcopy

  1 #include <iostream> 2 using namespace std; 3 4 5 template <class T> 6 struct GoodCopy { 7 // 在此处补充你的代码 8 void operator()(T* p,T* q,T* r){ 9 int n = q - p; 10 while(n + 1){ 11 *(r + n) = *q; 12

【ZJSU - 大红大紫:ACM - Template】比赛用模板08(W):动态规划

动态规划 \(\tt{}0/1\) 背包 \(N\) 件物品中选取,使得选取物品总体积不超过 \(M\) 的前提下,使得物品的价值总和最大。每种物品一件, \(\mathcal{O}(N*M)\) 。 int n, m, dp[N]; int v[N], w[N]; void Zero_bag() { cin >> n >> m; for (int i = 1; i <= n; ++ i) cin >> v[i

洛谷 P1044 [NOIP2003 普及组] 栈(dp)

https://www.luogu.com.cn/problem/P1044 给定一个n,在满足栈的出度入度条件下,求符合条件的permutation数量。 输入 3 输出 5 #include<bits/stdc++.h> using namespace std; typedef long long LL; const int N=2002000,M=2002; const int INF=0x3f3f3f3f; LL f[M][M]; int main

Educational Codeforces Round 135 (Rated for Div. 2) A-D

A. Colored Balls: Revisited 如果所有数加起来都没有最大值大,那最后剩下来的就是最大值 否则最后剩下来的可以是任何一个数 //#define int ll const int N = 2e5+10; int n,m; int a[N]; void solve() { cin>>n; int mx = 0,sum = 0,id; fo(i,1,n) { ci

ACM模式各种输入总结 C++

一、整型数组输入: (很简单)在终端的一行中输入固定数目的整型数字,并存到数组中,中间以空格分隔。 示例: 3 1 2 3 int n; cin >> n; vector<int> nums(n); for (int i = 0; i < n; ++i){ cin >> nums[i]; } (重难点)在终端的一行中输入非固定数目的整型

AtCoder Regular Contest 147

Problem A 题目大意:由N个正整数组成的序列,我们可以从中取出任意长短序列进行如下操作:序列中(最大值maxn%最小值minn = A),如果A为0则删除maxn,否则用A替换,询问要使得整个序列最后只剩下1,至少需要多少步操作; 思路:We can prove that, no matter how you choose i,ji,j in the oper

【链表、队列】约瑟夫环问题

3253. 游戏 #include <iostream> #include <queue> using namespace std; int n, k; bool check(int x) { if (x % k == 0 || (x % 10) == k) return true; return false; } int main() { cin >> n >> k; queue<int> q;

牛客dfs专题:轰炸区最优选取(二维前缀和)

链接:https://ac.nowcoder.com/acm/problem/14505 来源:牛客网 题目描述 现在给出一个正方形地图,其边长为n,地图上有的地方是空的,有的地方会有敌人。 我们现在有一次轰炸敌人的机会,轰炸敌人的区域是一个k*k的正方形区域,现在需要你解决的问题就是计算最多轰炸的敌人数量是多少。 输

树状数组

前言: 设有一个包含n个数的数组a[ ] = { 9,2,5,6,3,12...... },现要求前i个数的和值,即前缀和sum[ i ] = a[ 1 ]+a[ 2 ]+a[ 3 ]+...+a[ i ](i = 1,2,3...n),可以怎样求? 首先想到的肯定是累加前i个数,但若对a[ i ]进行修改,则sum[ i ],sum[ i +1 ]...sum[ n ]都需要修改,最多需要修改n次,如

Codeforces Round #719 (Div. 3) E. Arranging The Sheep(字符串)

https://codeforces.com/contest/1520 你在玩“放羊”游戏。这个游戏的目标是让羊排好队。 游戏中的关卡由一个长度为n的字符串描述,由字符“.”组成(空格)和' * '(羊)。 在一次移动中,你可以将任何羊向左移动一格或向右移动一格,如果相应的方格存在并且是空的。 羊一排好,游戏就结

Codeforces Round #818 (Div. 2) C Madoka and Formal Statement

Madoka and Formal Statement 思维 如果合法,说明 \(a_i \le b_i\),因此也可以认为 \(b_i\) 就是 \(a_i\) 最后能变成的最大值 根据题意操作,只有 \(a_i \le a_{i+1}\) 的情况,才能使 \(a_i + 1\),因此 \(a_i\) 的理论最大值应该是 \(b_{i+1} + 1\) 因此只要所有的 \(b_i\) 都不大于 \(

Codeforces Round #818 (Div. 2) A Madoka and Strange Thoughts

Madoka and Strange Thoughts 唯一分解定理 \[gcd(a, b) = p_1^{min(ak_1, bk_1)} * p_2^{min(ak_2, bk_2)}... \]\[lcm(a, b) = p_1^{max(ak_1, bk_1)} * p_2^{max(ak_2, bk_2)}... \]根据上面两个式子就可以知道 \(\frac{lcm(a,b)}{gcd(a,b)}\) 其实就是质因数最大最小次幂相差

Codeforces Round #818 (Div. 2) B Madoka and Underground Competitions

Madoka and Underground Competitions 构造 在一行里,如果选定了其中一个位置是 \(X\),接下来就直接往左和往右每 \(k\) 个放置一个 \(X\) 就行了 每一行的初始位置根据一开始的那个 \(X\),斜着一个方向铺满,即可做到每一行都存在一个 \(X\) . X . . . . . X . . . . . X .

Educational Codeforces Round 134 (Rated for Div. 2) D Maximum AND

Maximum AND 贪心 从高位开始,尽可能地让 \(a\) 中该位为 \(0\) 的 和 \(b\) 中该位为 \(1\) 的配对在一起,换句话说,可以让 \(a\) 由小到大排序,\(b\) 由大到小排序 如果当前位最终是 \(1\),则继续该过程 如果当前位最终是 \(0\),则说明失配,考虑将这一位全部置为 \(1\) (排除这一位

2022 HDU多校9

Arithmetic Subsequence(二进制、思维、分治) Problem 给定一个长度为\(n\)的序列,问是否可以对它重新排序使得重排后的序列中不存在等差子序列 Solve 如果一个数出现了\(3\)次及以上,一定无解 若\(a_i,a_j,a_k\)成等差数列,那么\(a_i\)和\(a_k\)奇偶性相同,所以如果把偶数放到左边,奇

XORwice

题意:给定a,b,求最小的(a^x)+(b^x),x为任意值 解: 根据异或:相同为0,不同为1的运算方法。 可以猜想x尽可能同时满足a,b 假如a=6,b=12 二进制:a:0110,要让a^x 变小,x=0110,直接变成0,对于b也是这样 故若x既满足a又满足b的相同的位多一些 那么x=a&b 就是所求 #include<iostream> using namespace

2021 Xinjiang Provincial Collegiate Programming Contest

   G. cocktail with snake 题意:给区间宽高:n,m,蛇形走位,问k步之后和原点的曼哈顿距离是多少 分析 int t = k / n 就是走k步后当行数 如果 t 是奇数,说明在往左走 如果 t 是偶数,说明在往右走 k % n 就是当前层往左往右走的步数 讨论一下,算出结果就行了 //------------------------