逻辑运算符 与或非异或: package operator;public class Demo06 { public static void main(String[] args) { /* a = 0010 1101 b = 1010 0100 a&b = 0010 0100 与 a|b = 1010 1101 或 a^b = 10
补题链接:Here 题意就是要找每一个 \(k * k\) 的小正方形里至少有一个1的数量 显然我们可以通过二维前缀和处理出(1, 1) 到 (n, m) 的数量 然后通过枚举处理出答案,具体思想是容斥 令 \(dp[i][j]\) 为 (1, 1) 到 (n, m) 的1的数量 有递推式子 \(dp[i][j] = dp[i - 1][j] + dp[i][j
数制转换 1、计算机的数制 2、数制的表示 3、数制的计算 4、数制的转换 5、二进制的特点 6、常见的八位二进制数 7、存储
一、计算机的数制 数制:计数的方法,指用一组固定的符号和统一的规则表示数值的方法 数位:指数字符号在一个数中所处的位置 基数:指在某种进位计数制中,数位上所能使用的数字符号的个数 位权:指在某种进位计数制中,数位所代表的大小,即处在某一位上的“1”所表示的数值的大小 1、十进制数
添加链接描述 #include<bits/stdc++.h> using namespace std; const int N=1e6+10;//我还是小瞧了1000*1000的点可以构成的边0.0 int n,m; int e[N],ne[N],h[N],idx,d[N]; void add(int a,int b) { e[idx]=b,ne[idx]=h[a],h[a]=idx++; d[b]++; } int step[N],mx=0; i
一维前缀和 #include <iostream> using namespace std; const int N = 1e5 + 10; int a[N], b[N]; int main() { int n, m, l, r; cin >> n >> m; for (int i = 1; i <= n; i ++ ) { cin >> a[i]; } for (int i = 1;
洛谷链接:https://www.luogu.com.cn/problem/P1332 多次入队,但是入队的时候建议在bfs中入队 #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<queue> using namespace std; typedef pair<int,int>PII; int n,m,a,b; int
1010 一元多项式求导 题目输入格式:输出格式:输入样例:输出样例:分析:代码: 题目 设计函数求一元多项式的导数。(注:xn (n为整数)的一阶导数为nxn−1 。) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。
动态规划 1.01背包 自闭门 #include <bits/stdc++.h> using namespace std; const int N = 1010; int v[N], w[N]; int n, m; int f[N][N]; int main() { cin >> n >> m; for (int i = 1; i <= n; i ++ ) cin >> v[i] >> w[i]; for (
【SSL】1565将功补过 Time Limit:10000MS Memory Limit:65536K Case Time Limit:1000MS Description 作为间谍专家的Elvis Han受窃取X星球军事中心的秘密情报,他已经成功进入军事中心。但是很不幸的是,在他还没有找到任务需要情报的时候就被发现,这时他清楚他不可能完成任务了,不
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1052 #include<bits/stdc++.h> using namespace std; int main() { int w[1010],t[1010],i,j,s,n; while(scanf("%d",&n)!=EOF) { if(n==0) break; i=j=s=0; for(i=0;i<n;i++) scanf("%
VI.[GYM102900H]Rice Arrangement 首先,考虑最终匹配上的人-饭对中,有两对是 \((a_{i1},b_{j1})\),\((a_{i2},b_{j2})\)(此处的 \(a,b\) 都是原本圆桌上坐标)。假如它们呈包含关系,则我们一定可以交换两碗饭使得它们变成相交关系,且两对所需旋转距离都不增加,也即答案一定不更劣。 我们将
LIII.CF285E Positions in Permutations 神题orz…… 我也是第一次听说有个叫二项式反演的神奇东西…… 它具体有两个形式: \(F(n)=\sum\limits_{i=0}^n(-1)^i\dbinom{n}{i}G(i)\Leftrightarrow G(n)=\sum\limits_{i=0}^n(-1)^i\dbinom{n}{i}F(i)\) \(F(n)=\sum\limits_{i=0}^n
1.位运算概述 从现代计算机中所有的数据二进制的形式存储在设备中。即 0、1 两种状态,计算机对二进制数据进行的运算(+、-、*、/)都是叫位运算,即将符号位共同参与运算的运算。 口说无凭,举一个简单的例子来看下 CPU 是如何进行计算的,比如这行代码: int a = 35; int b = 47; int c =
1017 A除以B (20 分) 本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数。你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立。 输入格式: 输入在一行中依次给出 A 和 B,中间以 1 空格分隔。 输出格式: 在一行中依次输出 Q 和 R,中间以 1 空格分隔。 输入样例: 1234567
解题前提 假设 u = 1010,则 v 可能为 1000、0010、1010。即对于 u 的每一位: a. u[i]为1,v[i]为1或0。 b. u[i]为0,v[i]为0。 假设 u = 1010, v = 1010,则 u+v=10100,其中 v 可以看作 1000+0010。 将所有v分解为原子操作:若 u[i]=1,则 u[i] = u[i]+1 或者 u[i] 不变。 所有的原子操作会导
题目地址: https://www.acwing.com/problem/content/1012/ 某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还
B - B CodeForces - 699B 题目: You are given a description of a depot. It is a rectangular checkered field of n × m size. Each cell in a field can be empty (".") or it can be occupied by a wall ("*"). You have one bomb. If you lay th
题意:有n个点,两两之间都有权为'a'或'b'的边,没有重边。你需要去找一条路径,使得路径组成的字符串是长度为\(m\)的回文串。 做法:由于只有a和b两种边权,所以: ①假设能找到一条边为(a,b,'a'or'b')和(b,a,'a'or'b'),则可以在这两点间反复横跳; ②如果没有这样一条边: 则需要找到下述3个点:(a,
1010 一元多项式求导 (25分) 题目地址:https://pintia.cn/problem-sets/994805260223102976/problems/994805313708867584 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数)。数字间以空格分隔。 输出格式: 以与输入相同的格式输出导数多项式非零
题意 给定一个正整数数对N1,N2,并给出其中一个数字的进制,请你求出另一个数字在什么进制下,两数相等成立。如果答案不唯一,则输出最小的进制数。 范围:N1和N2均不超过10个数位,且每个数位均为0 ~ 9或a ~ z,其中0 ~ 9表示数字0 ~ 9、a ~ z表示数字10 ~ 35。 思路 将已经确定进制的数放在N
题意描述: 洛谷 给你一个 \(n\times n\) 的矩阵 \(B\) 和一个 \(1\times n\) 的矩阵 \(C\) , 让你求一个 \(1\times n\) 的 \(01\) 矩阵 \(A\), 使得: \(D = (A\times B - C)\times A^T\) 的值最大,输出这个最大值。 注: \(A^T\) 即 \(A\) 的转置,也就是将 \(A\) 的行和列交换后得到的矩
一开始想着记录一下每个站点的level,根据给出的关系进行调整,后来发现这种方法实际上稍微复杂一点的情况都解决不了,因为这里的关系是有连带的,处理A关系后可能破坏了B关系. 对于每一行数据,以"4 1 3 5 6"为例,它可以独立地表示这样的关系: 1,3,5,6站等级均高于2,4站,即在起点
将整数的奇偶位互换 import org.assertj.core.api.Assertions; public class _05_交换奇偶位 { public static void main(String[] args) { int a = 0b01000000_00000000_00000000_00000000; System.out.println(a); int b = m(a); System.out.println(b);
#include <stdio.h> struct number{ int a; int b; }; int main(){ int i,k=0; char c; struct number num[100]; for(i=0;i<100;i++){ //输入 scanf("%d %d",&num[i].a,&num[i].b); c=getchar();