iwtgm

iwtgm-36

Codeforces Round 914 (Div. 2) A. 遍历能攻击国王的点,用map存下 再遍历能攻击王后的点,若这个点之前已经存过,说明这个点可以同时攻击国王和王后,ans++ void solve(){ int a,b; int x,y; cin>>a>>b>>x>>y; map<pa ......
iwtgm 36

iwtgm-35

Codeforces Round 913 (Div. 3) A. 把给定坐标的同一行同一列的每个数都输出(除本身) void solve() { char c; int d; cin>>c>>d; for(int i=1;i<=8;i++){ if(i==d)continue; cout<<c<<i ......
iwtgm 35

iwtgm-34

Educational Codeforces Round 159 (Rated for Div. 2) A. 只要有0就是yes 因为若只有0,显然满足条件 若0和1都有,一定会有01相邻的情况,我们插入0后,仍有01相邻的情况,即我们可以无限+0,那么最后0的个数一定可以大于1 void solv ......
iwtgm 34

iwtgm-33

Codeforces Round 912 (Div. 2) A. 只要k大等于2,那么每个数的位置就可以任意放置(两两交换可以到达任何位置),一定可以符合条件 特判序列本来就升序,那么k的值无关紧要 int n,k; int a[110]; void solve() { cin>>n>>k; boo ......
iwtgm 33

iwtgm-32

Codeforces Round 911 (Div. 2) A. 注意它是动态补水的,样例看了半天才明白 所以只要连续有大等于三个空格,花费就是2(第一个和第三个空格人为灌水) 第二个空格的水可以无限续,那其他空格就都从这里搬运 若没有连续大等于三个的空格,花费就是所有空格的数量和 void sol ......
iwtgm 32

iwtgm-31

题目链接 A. int a[5]; void solve() { int ma=0; for(int i=1;i<=3;i++){ cin>>a[i]; a[i]=(a[i]+1)/2; ma=max(ma,a[i]); } int ans=0; for(int i=1;i<=3;i++){ if( ......
iwtgm 31

iwtgm-30

题目链接 A. 解决题所花时间要小于总时间-路程时间 解题所花时间为5n(n+1)/2 void solve() { int n,k;cin>>n>>k; for(int i=1;i<=n;i++){ int a=5*i*(i+1); int b=480-2*k; if(a>b){ cout<<i- ......
iwtgm 30

iwtgm-29

题目链接 A, 当前数是奇数特判不是1后直接输出 若是偶数就一直除以2,直至成为一个奇数,特判不是1后输出 别想复杂别想复杂 void solve() { ll n;cin>>n; if(n&1){ cout<<"YES"<<endl;return ; } while(n%2==0){ n/=2; ......
iwtgm 29

iwtgm-28

题目链接 最优情况是两两配对嘛,我们把它们排序,对半开去比较 即第一个与n/2去比,第2个与n/2+1去比... int a[N]; void solve() { int n,k;cin>>n>>k; for(int i=0;i<n;i++)cin>>a[i]; sort(a,a+n); int c ......
iwtgm 28

iwtgm-27

题目链接 A. 先把菜肴按取出时间从前到后排序,因为先拿出先熟的一定最优 去枚举什么时候取出第i道菜,限制是时间是在前一道菜取出的时间之后,三层循环的dp 不错的状态转移 int f[2*210][2*210]; int a[210]; void solve() { memset(f,0x3f3f3 ......
iwtgm 27

iwtgm-26

题目链接 A. 拿例子说话 n1,那么在1处建信号站,信号为0 n2,那么在1和2处建信号站,信号均为0 n3,可以在1,2,3处建信号为0的信号站,也可以在2处建信号为1的信号站 n4,可以在1,2,3,4处建信号为0的信号站,也可以在2处建信号为1的信号站并在4处建信号为0的信号站,还可以在3处 ......
iwtgm 26

iwtgm-25

题目链接 A. 感觉跟欧拉没什么关系,属于带偏了 因为任两个点都有来回两条边,直接从最小点出发到每一个点就好了 难点在于取一段,题解代码值得学习 void solve() { ll n,l,r; cin>>n>>l>>r; ll fi=0,se=0; for(ll i=n-1;i>=1;i--){ ......
iwtgm 25

iwtgm-24

A. 考虑按块来计算 如果这个块在两边,那么除了与这个块相邻的那一个数与这个块的数不同(一个块里的数都是一样的),其他位置上的数任选 若这个块在中间,那么与这个块相邻的左右两个数与这个块的数不同,其他位置上的数任选 块的大小从1-n,每个块可选数字为10种,相邻数可选数字为9种,其他位置可选10种 ......
iwtgm 24

iwtgm-23

题目链接 A. 首先,如果只有1个机关(除高度h)那么不需要水晶 试想,无论这个机关在哪里,当它关闭后,下一个机关就会开启...以此类推 反而机关多了情况会更复杂 设i和i-1机关都是打开的,我现在在机关i,然后i和i+1的机关会一起关闭,那么i+2一定要有一个开的机关,若没有,则需要水晶 int ......
iwtgm 23

iwtgm-22

题目链接 A. 怪物先承受攻击,若承受住了,再回血,没承受住则死亡 也就是说若我们这一轮不能把它完全杀死,就要选择让它回血最少的攻击 若这一轮最大的攻击力能把它杀死则不用关心回血 若不能一招致死且回血大于攻击,那么怪物永远不会被杀死 void solve() { int n,x;cin>>n>>x; ......
iwtgm 22

iwtgm-21

题目链接 A. 首先每个木板最多增加2个高度 设木板a,b,c,若a与b高度相同,那么我们让b高度+1,假设b现在又与c高度相同,那么我们让b的高度再+1 b只有两个相邻木板,所以b不用再改变了 所以当前木板可以有3个选择:不变,高度+1,高度+2 并要保证与前一块木板高度不同,那么我们枚举的时候把 ......
iwtgm 21

iwtgm-20

题目链接 dp 确实没想到这种递推方式,一直绕在把整个网格分成k块,又要满足颜色不同,实在解不出来 dp的设置状态不是没想过,像这样的设置的确超出我的水平了 现在详细讲讲 只有两行,若两行的颜色块状态已知,我们是可以判断什么情况联通块会+1,什么情况是不变的,我们进行枚举即可 f[i][j][typ ......
iwtgm 20

iwtgm-19

题目链接 A. 把两个数合并成一个数,数的总和并没有变 要对应相等,那么两个数组所有数的总和一定相等,所以在最坏情况下两个数组都合并为1个数时一定满足条件 求最少合并次数的话,因为要对应下标对应相等,那么当前一定要通过合并一些数让当前对应下标相等,因为合并后面的对当前没有影响 所以直接用两个队列,取 ......
iwtgm 19

iwtgm-18

题目链接 C. 首先一列只能有一个黑格子,相邻列可以都有黑格子,只要第一列的第一个(第二个)是黑格子,第二列的第二个(第一个)是黑格子即可 黑格子可以在一列的上方或下方(两种情况) 要注意的是如果是相邻列都有黑格子,那么第一列黑格子的位置确定了那么所有相邻列的黑格子位置都确定了 如果不相邻,那么每一 ......
iwtgm 18

iwtgm-17

题目链接 I. 先算出一共有多少天,方便起见,算出考试总天数和发现总天数,两者相减即为差多少天 一周固定三天训练,用同样的方式计算出各有多少天训练,再相减即为答案 要注意的是,算当前周时,训练日期<本周星期的才算已经训练的天数 void solve() { int x0,x1,x2;cin>>x0> ......
iwtgm 17

iwtgm-16

题目链接 A. 层取,因为它的高度只有2e5,我把每个高度的方格个数记录下来 最后从高到低跑一遍,大于k的ans++ 有几个点: 顺序无关紧要,所以先从小到大排个序 从右往左,若前一个与当前的高度相同就continue,直到高度不相同 有一个变量now,记录的是当前高度 把当前高度-1的方格个数就是 ......
iwtgm 16

iwtgm-15

题目链接 这个dp题还是想多说一点,感觉之前写的还是不够清晰和透彻 先提一嘴,感觉这个dp不同于一般的dp,不是从1递推到n,个人理解更像是桶,后面会有很神奇的转移,真的太巧妙了 先解决一些局部问题吧 首先来想想重复的情况 如:0,1,1 这个例子中1是重复的,我们的dp转移状态是dp[i][0]+ ......
iwtgm 15

iwtgm-14

没时间了,只补了一个小题,自己尝试证明了下结论哈哈,还挺不错的 华中D 把线分成两种: 一种是只影响一个正方形的,就是最外围的那一圈,是偶数条 一种是影响两个正方形的(公共边),也是偶数条 已知偶数位是必胜态 后手只要跟着先手走, 先手选最外围的走,后手就选最外围的走, 先手选公共边走,后手就选公共 ......
iwtgm 14

iwtgm-13

题目链接 A. 自己写的时候固定思维左右转换,上下转换,还分开求了最短子序列,从一开始就错了... 正解: 因为操作可以变成4个方向的任意一个,相当于有几个字符就可以有几个任意的操作 二分区间长度,for循环滑动窗口枚举子序列 计算部分用前缀和维护求出最终的x,y 计算x,y和终点的xx,yy还差多 ......
iwtgm 13

iwtgm-12

补G题 一个大模拟 首先p不一定是质数,不能用逆元,用到了杨辉三角处理二次项系数 首先输入就很唬人,看题解学到用标记的方式分隔 系数默认为1,幂默认为1 有两个字符变量相同的情况,把系数合并 系数不为0才输出,系数为1不输出1,非1才有乘号,幂为1不输出 t次方就是杨辉三角的第t行,0-t就是从左到 ......
iwtgm 12

iwtgm-11

题目链接 A. 能全买,就让剩余的总钱/全买,加上可得的糖数,总钱-这些花费 此时不能全买,就遍历一遍,算出能买的总数 再让剩余的总钱/能买的... 这样是不会T的: 设total为这一轮能买的糖果的总价格,last为之前剩下的钱,now为这一轮买完糖果后剩下的钱 now=last%total,所以 ......
iwtgm 11

iwtgm-1

Codeforces Beta Round 72 (Div. 2 Only) A. A射杀B的一半,B剩下的一半射杀A的一半,A剩下的一半再射杀B剩下的一半 2*n分成4份,3次射杀机会分别射杀一份 void solve() { int n;cin>>n; cout<<n*2-n/2; } 或者 v ......
iwtgm

iwtgm-2

题目链接 A. Minimum Ternary String 1可以和2交换,1可以和0交换,0不可以和2交换, 意味着1可以在任何位置,而0和2的相对位置不变 所以记录下1的个数,把0和2按原字符串顺序放进答案字符串中 遍历答案字符串,碰到第一个2时先把所有的放进去,再放当前的2,把剩下的全部加入 ......
iwtgm

iwtgm-3

题目链接 A. 一个数组可以头尾两端取,求取到最小值和最大值所需最小步数 从两头分别取或者从左向右取完或从右向左取完,三种情况取最小的步数即可 void solve() { int n;cin>>n; int mi=150,id_mi,ma=-1,id_ma; for(int i=1,x;i<=n; ......
iwtgm

iwtgm-4

Codeforces Beta Round 73 (Div. 2 Only) B. 数据小,暴力一点的方式更好写, 自己写的优化一点的出现跑不出来的情况 优化是把所有当前字母的位置和S的位置算一个距离,取最小 确实预处理出最短距离进行映射会更好 int n,m,len,vis[27],ans; do ......
iwtgm
共36篇  :1/2页 首页上一页1下一页尾页